无法从Windows服务连接到外部服务

时间:2012-07-04 12:11:47

标签: c# windows visual-studio service

我有一个汇编DLL,可以让我连接到ActiveMQ代理。使用NUnit中的DLL工作正常,从控制台应用程序中使用它也可以正常工作。问题是从Windows服务中使用它。与代理的连接始终失败,就好像服务没有可用的外部连接。即使绕过SCM并在Visual Studio中运行代码也会失败。 Windows服务项目需要做些什么来获得外部连接吗?

DLL中的失败代码是:

ConnectionFactory connectionFactory = new ConnectionFactory(connectURI);
connection = connectionFactory.CreateConnection(); // fails here

connectURI很好,因为它适用于Console应用程序和测试。

1 个答案:

答案 0 :(得分:1)

主要区别是控制台应用程序,NUnit作为登录用户运行。 Windows服务运行为您配置为运行的任何内容。

尝试将服务配置为以帐户身份运行,看看它是否有效。确保它不是作为网络服务或本地服务运行。

它运行的帐户可能需要用户配置文件(之前已登录),尤其是在使用代理服务器时。

尝试运行fiddlernetmon以查看尝试连接时发生的情况。另外,尝试在连接尝试中添加一些日志记录和跟踪 - 异常堆栈应该有更多详细信息。

来自评论的编辑:还尝试添加.net网络客户端连接代码,这将更好地了解存在的任何连接问题。显然,NMS正在掩盖和吞噬根本问题。

编辑:对于寻找解决方案的其他人(没有阅读所有评论),添加.web客户端代码暴露了根本问题,这是一个配置文件问题。