【发布时间】: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