【问题标题】:Page_Load not deploying only on server, even with "no instructions" on Page_LoadPage_Load 不仅在服务器上部署,即使在 Page_Load 上“没有说明”
【发布时间】:2016-02-24 23:27:26
【问题描述】:

请先阅读本文 请避免将我的问题标记为可能与“什么是 NullReferenceException 以及如何修复它”重复;我之前在一些较老的问题上已经阅读了所有这些内容。 NullReferenceException 不是这里的主要话题,我知道它们来自哪里。主要话题是为什么我只在服务器上而不是在本地得到这个异常。澄清后,请阅读以下内容:)

我有一个通过单击按钮弹出的表单。上面有一些常用的控件;因此,当我通过本地环境(Visual Studio 的 asp 服务器)运行它时,它显示良好,甚至在 Page_Load 上我也有许多指令可以使用数据库中的数据(它是一个编辑表单)加载表单的字段。

但是当我通过 IIS(从 Web 浏览器)在远程服务器上运行它时,我得到的不是显示的表单,而是 NullReferenceException

所以我开始从我的 Page_Load 中评论指令,所以我可以放弃可能性,直到我达到让我的整个 Page_Load 方法评论的程度,严重的是 100%,这里不应该执行任何指令,但我仍然得到 NullReferenceException错误,堆栈跟踪如下所示:

堆栈跟踪:

[NullReferenceException: 对象引用未设置为 对象。] SisProEmp.editar_necesidad.Page_Load(对象发件人, EventArgs e) +1645 System.Web.UI.Control.LoadRecursive() +70
System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint) +3177

“editar_necesidad”是表单的名称(html 页面)。

请注意,这仅在通过网络浏览器进行测试时发生,而不是在本地环境中发生。起初我以为它可能是服务器的 DateTime 格式,但我已经放弃了,因为正如我所提到的,Page_Load 现在什么都不执行,我什至看不到渲染的空控件。

【问题讨论】:

  • 不,我知道 NullReferenceException 是什么,并且我知道一些修复它们的方法。问题在于,在这种特殊情况下,只有在通过服务器进行测试时才会引发异常。
  • 这不是我第一次看到 SO 中的问题被标记为您链接的那个问题的“重复”,但这不是一件好事,即使您提出的问题和它提供的答案非常完整和结构化,它们并不涵盖所有情况。因此,在我的情况下,我既不想问“如何修复 NullReferenceException”,也不想问 NRE 是什么。我只需要帮助找出这个 NRE 的原因。
  • 删除整个 Page_Load 方法并再次运行。如果它仍在异常堆栈中,则部署旧代码。这就是我的想法。还要部署 PDB,以便您获得文件和行号。无论如何都要部署 PDB。
  • Page_Load 旁边的 +1645 是本机代码的偏移量。如果你问我,方法很长,绝对不是空的。

标签: c# asp.net nullreferenceexception


【解决方案1】:
  1. 使用Telerik JustDecompile 从您的 Web 应用程序文件夹打开您在 Web 服务器上的 dll。看到您认为存在的代码与实际存在的代码不同,您可能会感到惊讶。调试中有一个原则叫“停止思考,看看”。

  2. 删除Web服务器C:\WINDOWS\Microsoft.NET\Framework\<version>\Temporary ASP.NET Files的缓存。同样寻找 64 位。

【讨论】:

  • 第二个我已经试过了。停止应用程序池,删除临时文件并再次运行,但仍然发生。
  • 好的反编译以确保您拥有什么和/或将 response.write("hello") 作为实验放入 page_load 以确保您的编辑器中的内容是实时的。和/或从一个空白页面重新开始,然后一点一点地添加东西,以防在加载过程中它在某个从属控件的加载中。
  • 我通常做的是在 C: 上搜索 DLL 名称,可能使用非常可靠的 Everything Search 工具。该DLL必须存在于某处。到处杀死它,运行应用程序以确认它无法启动。
猜你喜欢
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多