【问题标题】:IIS NullReferenceException when deployed but not in Dev ServerIIS NullReferenceException 部署但不在开发服务器中
【发布时间】:2013-09-25 13:24:38
【问题描述】:

我已经开发了一个 IIS 应用程序,它使用 ASPX 页面后面的 C# 代码以及用于数据库访问的实体框架。当我在 Visual Studio 开发服务器中运行它时,它工作正常,但如果我将它发布到 IIS 或从 Visual Studio 的本地 IIS Web 服务器上运行它(这与我猜的发布几乎相同)我得到

NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.Hosting.RecyclableCharBuffer.Append(String s) +15
   System.Web.Hosting.ISAPIWorkerRequest.SendUnknownResponseHeader(String name, String value) +93
   System.Web.HttpResponse.WriteHeaders() +233
   System.Web.HttpResponse.Flush(Boolean finalFlush) +219
   System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext context, Exception e) +127

在我的 Home.aspx 完成页面加载后引发此异常。一些简单的 ASPX 页面可以正常工作。设置 NullReferenceException 断点只是进入反汇编。

我一直在寻找如何追踪此问题的想法。有什么想法吗???

【问题讨论】:

  • 在 Page_Load 之后,还有更多的 Page 事件,直到它呈现所有控件。
  • 你看过你的webconfig了吗?它与您在开发服务器上使用的匹配吗?您是否进入 IIS 并配置了服务器?创建了虚拟目录?它在正确的 AppPool 中吗?这里可能有很多问题。
  • 嗯,是的,我一整天都在努力解决这个问题,所以我看了很多东西。像 web.config 这样的东西肯定会作为发布的一部分被复制吗?我的预感是它是一个不正确的 dll 版本或 IIS 上的某些东西,在 Development Server 上是可以的,因为它是从 VS 提取的,但我该如何追踪它?
  • 您的 Page_Load 中有什么,返回任何 MIME 类型?
  • @khakipuce - 你在使用会话变量吗?

标签: c# asp.net iis nullreferenceexception


【解决方案1】:

终于找到了。母版页中的一些模板代码正在做

Response.AddHeader("X-UA-Compatible", (String)Application["X-UA-Compatible"]);

当 Published Application["X-UA-Compatible"] 为空时。

值得知道的是,在 Response.AddHeader() 中有空值会导致这种问题,而不是更优雅地处理空值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 2012-09-21
    • 2015-08-26
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多