从IIS 7.5托管的WCF执行HttpWebRequest

时间:2011-10-10 18:46:26

标签: .net iis httpwebrequest

我有以下奇怪的情况。

我正在尝试在IIS 7.5 Express中托管的WCF服务中执行以下代码序列:

 var request = WebRequest.Create(some_uri) as HttpWebRequest;

 request.Method = "GET";
 request.Credentials = CredentialCache.DefaultNetworkCredentials;

 request.GetResponse();

从WCF服务执行时,我收到以下异常:

  

[WebException:无法连接到远程服务器]

及其内部异常:

  

[SocketException:因为目标无法建立连接   机器主动拒绝它127.0.0.1:400]

控制台应用程序中的相同代码序列已成功执行。

我在IIS 7.5 Express下运行的代码尝试了以下内容:

  1. 明确地将代理设置为从IE复制设置的请求对象(在那里使用代理)并且它有效。
  2. 将代理显式设置为null,它也有效。
  3. 现在,我有几个问题:

    1. 为什么在IIS 7.5下初始代码不起作用,但是在控制台应用程序中,一切都按预期工作?
    2. 原始代码和第一个解决方案有什么区别?据我了解,如果我没有指定代理,默认情况下,将应用IE代理设置。但事实证明,解决方案并不等同。
    3. 是否有其他解决方案可以成功地从WCF发起呼叫?

1 个答案:

答案 0 :(得分:2)

IIS代码在IIS用户帐户下运行,可能没有配置代理。