WCF错误401仅在某些pc上未授权

本文关键字:pc 授权 错误 WCF | 更新日期: 2023-09-27 18:04:26

我有一个WinForms应用程序调用托管在IIS7上的WCF服务。由于某种原因,连接到客户端网络的计算机在试图通过WinForms应用程序连接到WCF服务时获得401未经授权的错误。我花了相当多的时间试图弄清楚这一点,这就是我到目前为止所发现的。

  • WinForms应用程序在客户端网络之外的任何其他PC上接收WCF服务数据。
  • 从客户端网络,我可以通过web浏览器浏览到WCF服务。
  • 从客户端网络,我可以浏览到一个服务方法,得到"方法不允许"

另外,应该注意的是,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错误只在客户端的网络?

WCF错误401仅在某些pc上未授权

我的建议是尝试通过fiddler从客户端机器调用,并验证是否可以通过POST获得预期的结果。如果这是成功的,我会看看你是如何在IIS托管服务。我看到过几次匿名或基本身份验证被关闭的情况,导致了类似的问题。