【发布时间】:2014-10-25 19:15:45
【问题描述】:
我偶尔会从我的计算机调试我的 Windows 服务,而实际上 Windows 服务位于不同的远程服务器中。 我使用 Visual Studio 远程调试器执行此操作,然后通过
连接到服务器将我的源附加到服务工具 -> 附加到进程 -> 限定符 = 服务器 ip
问题是每当我由于互联网错误等原因失去与服务器的连接时,windows 服务器就会在我的服务器中停止并关闭,我必须重新启动它。
也许我没有提供足够的信息,所以请询问而不是投反对票。
TIA。
【问题讨论】:
-
我建议在 Windows 服务中放置一个
try/catch,看看它是否因某种原因而崩溃。如果是这样,并且连接是原因,它可能会给你更多的继续。 -
当我开发服务时,我通常以两种形式构建它们:一种是服务,另一种是控制台应用程序,因此它们的区别仅在于运行它们所需的“包装”代码各自的上下文。我使用控制台版本来开发/调试我的代码,并在准备好部署时简单地构建服务。我从来不需要附加/调试服务进程。
-
感谢您的建议,但它不是问题.. 尝试并抓住我认为它是多余的,因为我确定它来自我的本地计算机而不是服务器的连接错误.. 关于控制台,我也在本地运行服务来跟踪它,远程仅适用于特定情况..
-
所以你无法模拟代码在服务中而不是在控制台应用程序中运行时会发生什么?我的建议也是只创建一个控制台应用程序并对其进行调试,而不是服务进程本身。
标签: c# windows visual-studio visual-studio-2012 remote-debugging