当我尝试从在IIS Express上运行的 Web 应用程序连接到 Intranet Web 服务时,该 Web 服务返回403 Forbidden。当我通过单元测试或从在Cassini上或在我的服务器上的 IIS 7.5 下运行的同一站点访问时,该服务可以正常工作。我的直觉告诉我这是一个配置问题,但我不确定从哪里开始寻找。
当从运行在 IIS Express 上的站点访问该服务时,什么会导致远程 Web 服务返回 403 Forbidden?
为了澄清我正在访问的服务不是基于 SOAP 的。我正在设置一个特定的网络凭据并将其与我的请求一起传递,如下代码所示。
protected XDocument Search(Uri requestUri)
{
var nc = new NetworkCredential(this.config.ServiceUserName,
this.config.ServicePassword);
var cCache = new CredentialCache();
cCache.Add(requestUri, "Basic", nc);
var request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.Credentials = cCache;
request.PreAuthenticate = true;
request.Method = WebRequestMethods.Http.Get;
var response = (HttpWebResponse)request.GetResponse();
return XDocument.Load(new StreamReader(response.GetResponseStream()));
}