我在VS2015中调试了一个C#应用程序,需要分析第三方DLL问题。我有一个.NET Reflector许可证并尝试生成PDB。 Reflector强制我设置DEVPATH以访问 Regenerate PDB 功能。这样做,我的应用程序停止工作,几个Windows服务停止,无法启动。
没有启动的根服务(其他人依赖)是 Net Tcp端口共享服务。
由于我们的应用程序依赖于IIS托管的Web服务,因此我们的应用程序无法正常运行。
我发布这个信息是为了遇到这个问题的其他人,因为我已经弄清楚了Reflector做了什么以及为什么事情会崩溃。
答案 0 :(得分:0)
.NET Reflector启用DEVPATH会做两件事。除了向machine.config文件添加标志外,它还添加了一个名为DEVPATH的系统环境变量。
machine.config更改符合:https://stackoverflow.com/a/11026169/1519839
<runtime>
<developmentMode developerInstallation="true"/>
</runtime>
这会为任何当前正在运行的进程带来问题,因为它们会受到machine.config更改的影响而不会重新启动进程,但在进程重新启动之前不会看到DEVPATH环境变量。启用machine.config开关时,环境变量必须是可见的,否则您的进程将抛出异常(服务将失效并且不会启动等)。
有两种快速解决方案 - 撤消更改并重新启动计算机,或将两者都置于并重新启动计算机!