2012-06-28 5 views
2

яОшибка вызова веб-службы 401: Несанкционированный

Сбой запроса с состоянием HTTP 401: Несанкционированный

Мой веб-сервис .NET 4 работает на IIS6. Мой клиент .NET .NET работает на IIS6

Когда я запускаю оба клиента и serivce на моем локальном хосте, он работает. Когда я переведу службу на веб-сервер, я получаю вышеуказанную ошибку. Я поставил позволить

Я попробовал все комбинации анонимного доступа & встроенной проверки подлинности Windows в IIS я могу получить доступ к веб-службе через Брауэр и вызывать его с помощью Web Service Studio, хорошо, он просто не работает, когда я звоню из другой службы .NET

UPDATE

Я проверил, что IUSR учетной записи имеет право доступа к файлам NTFS и добавляются также в локальной политике безопасности, как пользователь, который может получить доступ к серверу по сети.

Когда я звоню из WebService Studio, он вызывает два запроса, которые сначала вызываются, возвращается 401, затем он снова вызывает передачу «Авторизация» и работает. Смотри ниже. Поэтому по какой-то причине мой анонимный доступ не работает. Как, когда я только анонимный доступ тикали и встроенную проверку подлинности Windows, неотмеченным я даже не могу получить доступ к нему из Брауэр

Content-Type: text/xml; charset=utf-8 
SOAPAction: "http://tempuri.org/HelloWorld" 
Host: webdev1 
Content-Length: 314 
Expect: 100-continue 
Connection: Keep-Alive 

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><HelloWorld xmlns="http://tempuri.org/"><echo>sd</echo></HelloWorld></soap:Body></soap:Envelope> 

HTTP/1.1 401 Unauthorized 
Content-Length: 1539 
Content-Type: text/html 
Server: Microsoft-IIS/6.0 
WWW-Authenticate: Negotiate 
WWW-Authenticate: NTLM 
Date: Thu, 28 Jun 2012 12:26:33 GMT 
Proxy-Support: Session-Based-Authentication 

Вызов 2 (происходит автоматически)

POST http://webdev1/CSHRService/CSHR.asmx HTTP/1.1 
Content-Type: text/xml; charset=utf-8 
SOAPAction: "http://tempuri.org/HelloWorld" 
Authorization: Negotiate YIILzQYGKwYBBQUCoIILwTCCC72gJDAiB/EG1WyqaLj3E67GA0...... 
Host: webdev1 
Content-Length: 314 
Expect: 100-continue 

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><HelloWorld xmlns="http://tempuri.org/"><echo>sd</echo></HelloWorld></soap:Body></soap:Envelope> 
HTTP/1.1 200 OK 
Date: Thu, 28 Jun 2012 12:26:34 GMT 
Server: Microsoft-IIS/6.0 
WWW-Authenticate: Negotiate oYGgMIGdoAMKAQChCwYJKoZIgvcSAQICooGIBI.. 
X-AspNet-Version: 4.0.30319 
Cache-Control: private, max-age=0 
Content-Type: text/xml; charset=utf-8 
Content-Length: 360 

Мой код, который вызывает службу только

CSHRService cshrService = new CSHRService(); 
    string s = cshrService.HelloWorld("d"); 
+0

Если вы поместите текстовый файл в корень сайта, можете ли вы ПОЛУЧИТЬ это успешно? –

+0

yep, см. Обновленный вопрос – Daveo

+0

Можете ли вы показать HTTP-запрос и ответ и код, который вы используете для вызова службы? –

ответ

0

Проблема была в неправильной учетной записи учетной записи IUSR. Я просто сменил пароль или создал новую учетную запись для запуска пула приложений, так как он исправил ее.

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