Page_Load不仅在服务器上部署;没有指令”;在Page_Load上

本文关键字:Page Load 指令 服务器 部署 | 更新日期: 2023-09-27 18:23:49

请先阅读此请避免将我的问题标记为可能重复的"What is a NullReferenceException and how to fix it";我以前读过关于一些老问题的所有内容。NullReferenceException不是这里的主要主题,我知道它们来自哪里。主要的主题是为什么我只在服务器上得到这个异常,而不是在本地。澄清后,请阅读以下内容:)

我有一个点击按钮就会弹出的表格。对它有一些常见的控制;因此,当我在本地环境(visualstudio的asp服务器)中运行它时,它显示得很好,甚至在Page_Load上,我也有许多指令,可以用DB中的数据加载表单的字段(这是一个编辑表单)。

但是,当我通过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(布尔值includeStagesBeforeSyncPoint,Boolean includeStagesAfterSyncPoint)+3177

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

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

Page_Load不仅在服务器上部署;没有指令”;在Page_Load上

  1. 使用Telerik JustDecompile从web应用程序文件夹打开web服务器上的dll。你可能会惊讶地发现,你认为存在的代码与实际存在的代码并不相同。调试中有一个原则叫做"停止思考并查看"。

  2. 删除web服务器C:'WINDOWS'Microsoft.NET'Framework'<version>'Temporary ASP.NET Files的缓存。也要查找64位。