【问题标题】:Intermittent NullReferenceException during .NET website compilation.NET 网站编译期间出现间歇性 NullReferenceException
【发布时间】:2011-04-06 13:31:57
【问题描述】:

我们有一个使用 .NET 在 C# 中使用 WebForms 编写的大型 Web 应用程序,但我们遇到了一个奇怪的问题。希望有人可以提供帮助。我们有一个运行 IIS7 的测试环境,每当我们上传修改过的文件(.aspx、.aspx.cs、.ascx、.ascx.cs 等)时,我们在尝试访问修改后的页面时都会遇到以下异常 - 但只有大约 30秒。然后应用程序就可以正常运行了。

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.Script.Services.WebServiceData.GetWebServiceData(HttpContext context, String virtualPath, Boolean failIfNoData, Boolean pageMethods, Boolean inlineScript) +251
   System.Web.Script.Services.PageClientProxyGenerator.GetClientProxyScript(HttpContext context, IPage page, Boolean debug) +49
   System.Web.UI.ScriptManager.RegisterServices() +511
   System.Web.UI.ScriptManager.OnPagePreRenderComplete(Object sender, EventArgs e) +120
   System.Web.UI.Page.OnPreRenderComplete(EventArgs e) +8699694
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1029

如您所见,它似乎是一个 Web 服务未能初始化,因为某些内容为空,可能是 HttpContext?!

这仅在此测试环境中定期发生,在我们的本地计算机上发生,但很少发生。它永远不会在生产环境中发生。我最初认为这与我们正在使用的 AJAX 控制工具包有关。除了一些没有回复的论坛主题之外,我找不到任何关于它的记录。

不完全确定如何进一步缩小范围。我们有一个在同一台机器上运行的暂存环境,它没有遇到问题。我可能会在 IIS 中创建一个新站点并将其指向它以查看它是否有帮助,欢迎提出任何建议。

一如既往,感谢您的宝贵时间。

【问题讨论】:

  • 原来在母版页中,如果 Ajax 控件工具包的 ToolkitScriptManager 上的 EnablePageMethods 设置为“false”,问题就消失了。必须是某种在幕后为脚本管理器使用的服务设置的服务!停止将它用于所有未来的项目 - 改为使用带有 MVC 的 jQuery UI :)

标签: .net asp.net web-services compilation nullreferenceexception


【解决方案1】:

如果它仅在您更新文件时发生,可能是因为在您更新文件时发生了重新编译。如果它是一个大型站点,则可能尤其如此。我自己的网站也遇到过类似的问题。

至于为什么只出现在某些地方,恐怕我没有答案。

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    相关资源
    最近更新 更多