I have an asp.net web application. He interacts with the business layer through WCF. There is a lengthy database operation (two hours). This is a regular synchronous call. I initially received exceptions related to WCF timeouts. For these exceptions, there used to be an exception on the user interface page ("Socket Timeout"). I solved this using WCF binding settings both in the service and in the client.
Now, after (exactly) one hour, I get an error in the browser window. Despite the fact that our application has a page with a user application error, it does not show the configured error. Since there are no exceptions in the user interface, I assume that this may be due to ASP.Net timeout, not WCF. I also do not see a relevant event log.
What are the ways / tools that I can use to determine the exact cause of the timeout?
Is this broswer setting / asp.net/iis setting a problem?
IE Error Message: The page you are looking for is currently unavailable. The website may be experiencing technical difficulties, or you may need to adjust your browser settings. Note: it says below: “Cannot find server or DNS error”
Note. This feature is used once a month. This is the functionality for the administrator. Thus, two hours is good for us.
Note. I have the following WCF configuration. Service (receiveTimeout = "05:30:00") and Client (receiveTimeout = "05:30:00" and sendTimeout = "05:30:00").
Note. It cannot go to our user error page and no exception is thrown.
Note. I am developing Visual Studio 2005.
Note. WCF itself is intended for testing.
Note. This is NetTCPBinding in WCF
Some configuration values used in the application are listed below:
<httpRuntime maxRequestLength="20000" executionTimeout="900"/>
<forms loginUrl="Default.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="30" defaultUrl="Home.aspx"> </forms> </authentication>
and-
<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>
Note. I plan to disable "Show friendly HTTP error messages" in IE. I also plan to make customErrors mode = "Off" in system.web to check it further.