4

我有一个带有 Asp.Net MVC 5 Web 角色和面向 4.5.1 框架的 Azure SDK 2.3 的云服务;该网站在本地完美运行。但是当我将它部署到 Azure 云服务时,我遇到了经典的空引用错误:

你调用的对象是空的。异常详细信息: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"
                    ));

在 WebRole 上使用 Intellitrace 日志我可以看到这个错误:

文件监控的文件名无效 'E:\sitesroot\0\Scripts

在实例中远程输入,我看到文件夹 Scripts 正是在该路径中。

删除@Script.Render 页面加载正常。同一页面上的 @Style.Render 有效。

我尝试在调试模式和发布模式下部署,都在暂存中。

还尝试在 Web.config 中更改

compilation debug="true" and false

没有成功。任何想法为什么会发生这种情况?谢谢

4

2 回答 2

4

经过几天的测试,我发现问题出在 WEBGREASE 包上。即使在新项目上更新它也会导致问题。现在卸载它并重新安装以前的版本解决了这个问题。

于 2014-06-04T10:37:45.407 回答
0

尝试从 jquery 包中删除除 jquery 之外的所有内容。然后为依赖于 jquery 的脚本(knockout、jquery.signalR 和modernizr)创建一个新包,并在 jquery 包之后渲染它。

于 2014-06-04T03:24:43.187 回答