调试asp.net中的编译功能

本文关键字:编译 功能 asp net 调试 | 更新日期: 2023-09-27 18:14:23

我有一个网站,我相信是在asp.net,这是抛出一个异常System.NullReferenceException: Object reference not set to an instance of an object.。堆栈跟踪如下所示:

[NullReferenceException: Object reference not set to an instance of an object.]
   SomeScript.getConnection() +32
   SomeScript.buildGridData() +299
   SomeScript.Page_Load(Object sender, EventArgs e) +92
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Control.LoadRecursive() +163
   System.Web.UI.Control.LoadRecursive() +163
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2603

同样的错误基本上发生在所有请求数据的页面上,只有上面堆栈跟踪中的SomeScript为加载脚本交替。

环境变化只是在修改远程SMTP服务器的密码时发生的,但是在更改密码后,站点仍然可以正常加载。

我的感觉是,当用户试图在网站内使用SMTP邮件功能并收到错误(我无法捕获用户收到的错误)后,getConnection()方法的这些错误开始发生。

我有点失去了调试任何进一步从这里作为getConnection()方法似乎是在编译的dll和不能被我访问。

下一步是什么试图消除错误?

调试asp.net中的编译功能

首先,从您的描述来看,SMTP密码更改不太可能导致问题。但是如果密码更改是在Web.config文件中进行的,我想说它可能比它应该做的更不小心,事实上,数据库连接相关的部分在那里已经被无意中修改,不再有效。

如果你希望能够调试到DLL中,你可以在Visual Studio中禁用"只调试我的代码"选项(类似于工具/选项/调试)-然后你应该能够深入到这些DLL中,看看问题出在哪里。希望它不需要任何代码更改,您可以修复配置文件。