У меня возникла проблема с веб-приложением ASP.NET, размещенным на одном сервере, которое пытается использовать веб-службу, размещенную на другом сервере. Когда я перехожу на страницу, использующую веб-службу, я получаю следующую ошибку:
Сервер не смог обработать запрос. ---> Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.
Вот запись журнала IIS, когда веб-приложение пытается использовать веб-службу. (я удалил всю информацию о сервере)
2010-12-08 21:19:57 POST /WebServices/MyWebService.asmx - 80 - HTTP / 1.1 Mozilla / 4.0 + (совместимый; + MSIE + 6.0; + MS + Web + Services + Client + Protocol + 2.0.50727.3615) - - 500 0 0 765 675 15015
Когда мы перемещаем веб-службу на тот же сервер, что и веб-приложение, даже если веб-служба размещена в другом домене, она будет работать должным образом. Я также могу без проблем переходить к веб-службе на другом сервере с помощью Internet Explorer.
И веб-приложение, и веб-служба используют платформу .NET 3.5 и размещаются в IIS 6.0 на Windows Server 2003 SP2.
Если кто-то сталкивался с этой проблемой, как вы смогли ее решить.
Это проблема с тайм-аутом или с конфигурацией? Если он загружается очень быстро на локальном компьютере, вероятно, это проблема конфигурации. Есть ли шанс, что другой сервер работает достаточно медленнее, чем на самом деле тайм-аут?
Вы точно знаете, что веб-сервис на другом сервере работает правильно?
Попробуйте протестировать хотя бы URL-адрес веб-службы с самого веб-сервера, просто используя веб-браузер. Это подтвердит DNS и сетевое соединение, а также то, что у вас есть доступ через брандмауэр с одного сервера на другой.
Вероятно, проблема в конфигурации. Возможно, вам повезет и вы найдете файл .config в том же каталоге, что и веб-сервис, который может иметь строку подключения, которая вполне может указывать на localhost.
Если вы все же найдете файл .config, найдите <connectionStrings>
узел.