IIS7 でホストされている WCF サービスを呼び出す WinForms アプリがあります。何らかの理由で、WinForms アプリを介して WCF サービスに接続しようとすると、クライアント ネットワークに接続されているコンピューターで 401 Unauthorized エラーが発生します。私はこれを理解しようとかなりの時間を費やしましたが、これが私がこれまでに発見したことです.
- WinForms アプリは、クライアント ネットワーク上にない他の PC で WCF サービス データを受信します。
- クライアント ネットワークから、Web ブラウザーを介して WCF サービスを参照できます。
- クライアント ネットワークからサービス メソッドを参照すると、予想どおり「メソッドは許可されていません」というエラーが表示されます。
また、WCF サービスは SOAP ではなく REST を使用していることにも注意してください。
すべてのサービス呼び出しを行うために使用するコードは次のとおりです。
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 エラーが発生する理由について、何か手がかりはありますか?