У меня есть приложение WinForms, которое вызывает службу WCF, размещенную на IIS7. По какой-то причине компьютеры, подключенные к клиентской сети, получают ошибку 401 Unauthorized при попытке подключиться к службе WCF через приложение WinForms. Я потратил немало времени, пытаясь понять это, и это то, что я обнаружил до сих пор.WCF Ошибка 401 Несанкционирован только на некоторых компьютерах
- Приложение WinForms получает данные службы WCF на любом другом ПК, а не в сети клиента.
- Из клиентской сети я могу просматривать службу 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 только в сети Клиента?
У меня есть анонимный аккаунт с назначенной ему учетной записью пользователя, но это не решило проблему. Fiddler - отличная идея, хотя я никогда не использовал ее, поэтому я буду экспериментировать с ней и посмотреть, могу ли я получить некоторые успешные запросы. –
Оказывается, брандмауэр клиента блокировал запросы. Благодарю. –