Назад | Перейти на главную страницу

Что вызывает тайм-аут моего вызова веб-службы?

Веб-сервер - это Windows Server 2003 с IIS 6. Веб-служба - это ASMX, работающий в .NET 4.0.

При вызове веб-службы от имени пользователя домена с именем «ALBERT» все работает успешно.

POST http://elvis.ecq.local/sems/Services/DecVotingService.asmx HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.225)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/GetEventDivisions"
Host: elvis.ecq.local
Content-Length: 449
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><GetEventDivisions xmlns="http://tempuri.org/"><eventID>165</eventID><isGroupEvent>false</isGroupEvent><roUserName>ALBERT</roUserName><CHKSUM>3dcdaea4f9dbcaac689a4ce19c0fcd97</CHKSUM></GetEventDivisions></soap:Body></soap:Envelope>

Когда тот же самый вызов выполняется с использованием пользователя домена DALRYMPLE, время ожидания запроса истекает.

POST http://elvis.ecq.local/sems/Services/DecVotingService.asmx HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.225)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/GetEventDivisions"
Host: elvis.ecq.local
Content-Length: 452
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><GetEventDivisions xmlns="http://tempuri.org/"><eventID>165</eventID><isGroupEvent>false</isGroupEvent><roUserName>DALRYMPLE</roUserName><CHKSUM>2de3f62d249a2024394e9c410e7904b9</CHKSUM></GetEventDivisions></soap:Body></soap:Envelope>

Один и тот же компьютер используется в одной сети для каждого теста. Что вызывает тайм-аут запроса для одного пользователя, а не для другого?

Обновить

Тот же тест с использованием «DALRYMPLE1» работает успешно.

POST http://elvis.ecq.local/sems/Services/DecVotingService.asmx HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.225)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/GetEventDivisions"
Host: elvis.ecq.local
Content-Length: 453
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><GetEventDivisions xmlns="http://tempuri.org/"><eventID>165</eventID><isGroupEvent>false</isGroupEvent><roUserName>DALRYMPLE1</roUserName><CHKSUM>87193ccb2f173499d03e2383d9a989f0</CHKSUM></GetEventDivisions></soap:Body></soap:Envelope>

Обновить

Кажется, что время ожидания истекает, когда у запроса есть Content-Length 452.

Обновить

Мы сузили его до 3G-модема, используемого для подключения к серверу. У нас есть два типа модемов: более новый модем не работает, если размер запроса составляет 452 байта, тогда как старый модем работает успешно. Это действительно странно. Мы ведем расследование с поставщиком модема.

Пользователь DALRYMPLE также корректно работает через LAN-соединение.

Я подозреваю, что MTU, попробуйте увеличить или уменьшить его на 1. посмотрите, не изменится ли что-нибудь, QA для дальнейших проблем и установите значение, которое не сломается.