У меня есть веб-приложение asp.net. Он связывается с бизнес-уровнем через WCF. Продолжительная операция с базой данных (занимает два часа). Это обычный синхронный звонок. Изначально я получал исключения, связанные с тайм-аутами WCF. Для этих исключений на странице пользовательского интерфейса было исключение (например, «Socket Timeout»). Я решил эту проблему, используя настройки привязки WCF как в службе, так и в клиенте.
Теперь, спустя (ровно) один час, я получаю сообщение об ошибке в окне браузера. Несмотря на то, что в нашем приложении есть пользовательская страница ошибок, она не показывает настраиваемую ошибку. Поскольку в пользовательском интерфейсе нет исключений, я предполагаю, что это может быть связано с таймаутом ASP.Net, а не с WCF. Я не вижу ни одного релевантного журнала для просмотра событий.
Какими способами / инструментами я могу определить точную причину истечения времени ожидания?
Это настройка параметров broswer / asp.net / настройка iis?
Сообщение об ошибке IE: страница, которую вы ищете, в настоящее время недоступна. Веб-сайт может испытывать технические трудности, или вам может потребоваться изменить настройки браузера.
Примечание: внизу написано «Не удается найти сервер или ошибка DNS»
Примечание. Эта функция используется только один раз в месяц. Это функциональность для администратора. Так что для нас хорошо потратить два часа.
Примечание: у меня есть следующая конфигурация WCF. Служба (receiveTimeout = "05:30:00") и Клиент (receiveTimeout = "05:30:00" и sendTimeout = "05:30:00").
Примечание. Невозможно перейти к нашей пользовательской странице ошибки, и исключение не выдается.
Примечание. Я занимаюсь разработкой Visual Studio 2005.
Примечание. WCF самостоятельно размещается для тестирования.
Примечание: это NetTCPBinding в WCF
Некоторые значения конфигурации, используемые в приложении, перечислены ниже:
<httpRuntime maxRequestLength="20000" executionTimeout="900"/>
<forms loginUrl="Default.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="30" defaultUrl="Home.aspx">
</forms>
</authentication>
и-
<roleManager defaultProvider="MyRoleProvider" enabled="true"
cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
<providers>
<clear/>
<add name="MyRoleProvider" type="My.AccessControl.ServiceLayer.MyRoleProvider" />
</providers>
</roleManager>
Примечание. Я планирую отключить «Показать дружественные сообщения об ошибках HTTP» в IE. Я также планирую сделать customErrors mode = ”Off” в system.web для дальнейшего тестирования.