我有一个 c# Azure 项目,它只是一个 Web api,并且想要删除一些非 API 默认组件(欢迎页面、帮助等)。执行此操作后,启动应用程序时,我收到一条错误消息“对象引用未设置到对象的实例”。我以前在 Azure 中做事时就遇到过这种情况,并且每次都以某种方式绕过它们。我的问题实际上是:我如何自己调试这个错误?不幸的是,这个错误描述缺乏细节(没有调用堆栈或任何东西,就好像应用程序尚未启动,并且对话框是模态的,所以我无法单击 VS 中的任何内容)
补充说明:
- 这是一个 ASP .NET 项目。
- 一旦我发布到 Azure,它就会起作用。
- 完全复制项目并重建后,它似乎可以工作。然后,当处理 NuGet 依赖项时,我们又发现它不起作用(我尝试删除我的包文件夹并重新创建 NuGet - 没有运气;不知道是否与 NuGet 相关)
- 我重新复制了该项目,因此只需使用相同版本的 VS 重新打开“MySolutionFolder”->“MySolutionFolder - 复制”即可正常运行。显然,这是一个令人惊讶的草率解决方案,因此寻找更好的解决方案。
正如评论中所述,该问题可能涉及各种文件的访问权限,很可能与 NuGet 相关,但也可能与 Azure 相关,这解释了为什么复制到新的解决方案目录“修复”了该问题。我希望看到更好的错误信息,例如“错误:Visual Studio 无法写入‘packages.config’”,所以我实际上知道在哪里解决此类问题。就目前而言,它就像一个编译错误,表示“代码中的语法错误。某处。祝你好运找到它”。。
最佳答案
不幸的是,我从未发现一种以更通用的方式调试此类问题的方法。我最终解决了这个问题,然后又看到它再次出现;按照其他人在另一个论坛上尝试过的建议,我删除了我的包文件夹,并让 NuGet 重新创建了它,无论出于何种原因,这都纠正了问题。
还有一次,来自 this question 的解决方案工作(删除并重新添加所有角色);有时这似乎需要重新安装 Azure SDK 并重新启动计算机。
编辑
最后,我能找到的最佳解决方案是 here :删除SUO文件并重新启动VS。
希望这个解决方案能够帮助将来遇到类似问题的人!
关于c# - 如何在VS2013中调试 "Object reference not set to an instance of an object"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21773593/