我有一个c#Azure项目,它只是一个web api,并且想要删除一些非API默认组件(欢迎页面,帮助等)。执行此操作后,启动应用程序时,出现错误消息“对象引用未设置为对象的实例”。我之前在Azure中做过这些事情时已经看到了这一点,并且每次都以某种方式绕过它们。我的问题是:我如何自己调试此错误?这个错误描述非常缺乏细节(没有调用堆栈或任何东西,好像应用程序尚未启动,并且对话框是模态的,因此我无法点击VS中的任何内容)
额外说明:
如评论中所述,该问题可能涉及对各种文件的访问权限,很可能与NuGet相关但也可能是Azure,这解释了为什么复制到新的解决方案目录“修复”了这个问题。我希望看到更好的错误信息,例如“错误:Visual Studio无法写入'packages.config'”,所以我实际上知道 where 来解决这类问题。就像现在一样,它就像一个编译错误,上面写着“代码中的语法错误。某处。好运找到它”。
答案 0 :(得分:10)
不幸的是,我从来没有找到一种以更一般的方式调试此类问题的方法。我最终解决了这个问题,然后又看到它再次弹出;按照别人在另一个论坛上试过的建议,我删除了我的包文件夹,并让NuGet重新创建它,无论出于何种原因纠正了这个问题。
另一次,来自this question的解决方案有效(删除并重新添加所有角色);有时这似乎需要重新安装Azure SDK并重新启动计算机。
修改强>
最后,我能找到的最佳解决方案是here:删除SUO文件并重新启动VS。
希望此解决方案能够帮助将来遇到类似问题的人!
答案 1 :(得分:5)
勾选调试>例外>公共语言运行时异常>系统> NullReferenceException并运行你的应用程序
答案 2 :(得分:2)
您可以启用Intellitrace并远程调试您的azure服务:
答案 3 :(得分:2)
在asp.net应用启动周期的早期(调试器附加之前)出现问题时,我看到了类似的症状。
我之前使用的一种解决方法:
现在重启将在调试器从一开始就连接到进程。如果这没有提供更多有用的信息,那么请关闭“Just My Code”调试异常/断点处理并重复。
答案 4 :(得分:1)
对于Visual Studio 2019,单击菜单“ 调试> Windows>例外设置”。
在公共语言运行时异常下,在 System.NullReferenceException 上打钩。调试器将在捕获此异常的地方中断。
答案 5 :(得分:0)
您可以设置本地Azure模拟器,这就是我一直在调试我的云应用程序的方式。
http://msdn.microsoft.com/en-us/library/windowsazure/hh403990.aspx
也许做一些阅读! http://msdn.microsoft.com/en-us/library/windowsazure/ff683670.aspx http://msdn.microsoft.com/en-us/library/windowsazure/hh694035.aspx
答案 6 :(得分:0)
在global.asax中:
protected void Application_Error(object sender, EventArgs e)
{
var error = Server.GetLastError();
string message = error.Message;
string callStack = error.StackTrace();
//Write message and callStack to file
...
}
答案 7 :(得分:0)
答案 8 :(得分:0)
我还启动了Compute Emulator的“Object reference not set”问题。我发现运行VS作为管理员解决了这个问题。
答案 9 :(得分:0)
将项目目标更改为4.6.1。似乎对我有用。
答案 10 :(得分:-1)
您可以通过日志进行调试。就像你可以检查诊断日志。通过代码启用它们。它有一些配置。我也遇到过这类问题,这对我来说很难追查。所以我启用了诊断日志并在我的自定义检查点上写日志。