ASP.NET MVC 5 웹 역할 Azure Cloud에 배포 한 후 @ scripts.render에서 나누기
-
21-12-2019 - |
문제
ASP.NET MVC 5 웹 역할 및 Azure SDK 2.3 타겟팅 4.5.1 프레임 워크가있는 클라우드 서비스가 있습니다. 웹 사이트는 현지에서 완벽하게 작동합니다. 그러나 Azure 클라우드 서비스에 배포 할 때 Classic Null 참조 오류가 있습니다.
객체 참조가 객체의 인스턴스로 설정되지 않았습니다. 예외 세부 정보 : system.nullReferenceException : 객체 참조가 개체의 인스턴스로 설정되지 않았습니다.
소스 오류 :
Line 9: @Scripts.Render("~/bundles/jquery")
.
내 bundleconfig.cs는 간단합니다 :
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/knockout-{version}.js",
"~/Scripts/jquery.signalR-{version}.js",
"~/Scripts/modernizr-{version}.js"
));
.
WebLole에 IntelliTrace 로그를 사용 하여이 오류를 볼 수 있습니다 :
파일 모니터링의 파일 이름이 잘못되었습니다. \ sitesRoot \ 0 \ 스크립트
인스턴스에서 원격으로 들어가면 폴더 스크립트가 해당 경로에 정확히 있음을 알 수 있습니다.
@ script.render를 정상적으로 제거하십시오. @ style.reder 동일한 페이지에서 작동합니다.
디버그 모드로 배포하려고 시도했으며 스테이징을 모두 릴리스 모드로 시도했습니다.
또한 web.config에서 변경하려고했습니다
compilation debug="true" and false
.
성공없이. 어떤 아이디어가 왜 일이 일어날 수 있습니까? 감사합니다
해결책
테스트 일 이후에 문제가 웹 그레이스 패키지임을 발견했습니다.업데이트하면 신선한 새 프로젝트에서도 문제가 발생할 수 있습니다.이제 제거하고 이전 버전을 다시 설치하면 문제가 해결되었습니다.
다른 팁
jQuery 번들에서 jQuery를 제거하지만 모든 것을 제거하십시오.그런 다음 jQuery 종속 스크립트 (녹아웃, jquery.signalr & modernizr)에 대한 새 번들을 만들어 jQuery 번들 후에 렌더링하십시오.