我有一个WinForms应用程序,它调用托管在IIS7上的WCF服务。由于某些原因,连接到客户端网络的计算机在试图通过WinForms应用程序连接到WCF服务时会出现401未经授权的错误。我花了相当长的时间试图弄清楚这一点,这就是我到目前为止所发现的。
另外,应该注意的是,WCF服务使用的是REST而不是SOAP。
下面是我用来执行所有服务调用的代码:
byte[] dataStream = Encoding.UTF8.GetBytes(strParameters);
WebRequest webRequest = WebRequest.Create(strUrl + strFunction);
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
webRequest.ContentLength = dataStream.Length;
Stream newStream = webRequest.GetRequestStream();
newStream.Write(dataStream, 0, dataStream.Length);
newStream.Close();
WebResponse response = webRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader responseReader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
string responseString = responseReader.ReadToEnd();有没有人知道为什么我只会在客户的网络上得到401错误?
发布于 2013-03-18 18:53:21
我的建议是通过客户端机器上的fiddler尝试调用,并验证您是否可以通过POST获得预期的结果。如果这是成功的,我将研究您是如何在IIS中承载该服务的。我曾多次看到这个问题是匿名或基本认证被关闭的,这导致了类似的问题。
https://stackoverflow.com/questions/15483289
复制相似问题