Webrequest不能在Windows服务中工作

问题描述:

我无法在Windows服务中使用Webrequest。它失败,错误“”无法连接到远程服务器”。Webrequest不能在Windows服务中工作

WebRequest request = WebRequest.Create(url); 
    NetworkCredential nc = new NetworkCredential("myuname","mypassword","mydomain"); 
    request.Proxy.Credentials = nc; 

    try 
    { 

    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    Stream dataStream = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(dataStream); 
    string responseFromServer = reader.ReadToEnd(); 
    } 
    catch (WebException ex) 
    { 
    //ex.Message is "Unable to connect to the remote server" 
    } 

代码工作完全正常,如果它是一个控制台应用程序。

可能有人请告诉我们,如果有一个修复?

+0

服务在哪个用户下运行? – 2011-03-25 21:00:45

+0

尝试作为本地系统帐户以及我的帐户运行。两者都有同样的问题。我也有硬编码我的名字和密码,并使用networkcrednetial – paseena 2011-03-25 21:18:10

+0

PS:有一个网络代理需要认证,因此我使用网络知识 – paseena 2011-03-25 21:34:01

您可能想要尝试在您创建的请求对象上指定proxy server当您运行控制台应用程序时,我认为系统会为您查找您的IE配置,并且可能设置了代理服务器。除了你的帐户,它可能没有代理设置。

+0

非常感谢提示!这正是我的问题 – paseena 2011-03-25 23:39:54

我正面临同样的问题。经过大量的R & D解决方案为我工作。

相反的:

WebResponse responseObject = requestObject.GetResponse(); 

我写道:

WebResponse responseObject = null; 
responseObject = requestObject.GetResponse(); 

它工作得很好。

我也在寻找这种行为背后的确切原因。