2013-03-18 2 views
0

У меня есть приложение 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 только в сети Клиента?

ответ

1

Мое предложение состояло в том, чтобы попробовать позвонить через fiddler с машины-клиента и проверить, можете ли вы получить ожидаемый результат через POST. Если это будет успешным, я рассмотрю, как вы размещаете эту услугу в IIS. Я видел несколько раз, когда проблема была анонимной или базовой проверки подлинности была отключена, что вызвало подобные проблемы.

+0

У меня есть анонимный аккаунт с назначенной ему учетной записью пользователя, но это не решило проблему. Fiddler - отличная идея, хотя я никогда не использовал ее, поэтому я буду экспериментировать с ней и посмотреть, могу ли я получить некоторые успешные запросы. –

+0

Оказывается, брандмауэр клиента блокировал запросы. Благодарю. –

Смежные вопросы