我有一個asp.net web應用程序。它通過WCF與業務層進行通信。有一個冗長的數據庫操作(花費兩個小時)。這是一個通常的同步呼叫。最初我曾經習慣了與WCF超時相關的異常。對於這些例外情況,以前在UI頁面中引發了異常(稱爲「套接字超時」)。我在服務和客戶端都使用WCF綁定設置解決了這個問題。查找ASP.Net超時原因(在漫長的操作過程中)
現在,(正好)一個小時後,我在瀏覽器窗口中出現錯誤。即使我們的應用程序有一個自定義的應用程序錯誤頁面,它也不會顯示自定義錯誤由於在UI中沒有拋出異常,我認爲它可能是由於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是自託管的測試。
注:在WCF NetTcpBinding的
在應用程序中使用的一些配置值列舉如下:
<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>
注: 我是計劃在IE中禁用'「顯示友好的HTTP錯誤消息」。我還計劃在system.web中使customErrors mode =「Off」對其進行進一步測試。
考慮把它分成獨立的過程一個Web請求是不是要住2個小時... –
這是如何託管,在iis?還是開發者服務器?如果它在iis中可能檢查你的連接超時設置 –
你是否使用不同的瀏覽器得到相同的結果? –