Hi Folks,
I was facing a problem in my phonegap android mobile app with ASP.NET WCF REST Service, The error used to say 504 Gateway Time-out - The web server is not responding.
But the app was working on many devices but was giving this error on some devices including Samsung S3 I747.
My first impression was the problem is with the web server. I checked the performance which was ok and also checked the code which was .net wcf with LINQ which was also giving result on a decent speed and time.
I also restarted my IIS to clear the cache but still no affect the same error was produced again on the same device.
The first step i took was to enable error tracing in IIS, Which is available in IIS under name "Failed Request Tracing Rules". I activated this with error codes 400,402,500,504 to find out what causes this problem.
When i checked the log files it showed me the error code which was 402 when tried to connect with samsung s3 phone. Here is how i sorted out the problem in three easy steps.
Step 1: Since this error is a status code in a browser my first doubt was that the browser might not be supporting some configuration. So i added the below line in my web.config file
<system.web>
<browserCaps userAgentCacheKeyLength="256" />
Step 2: Since my WCF service was expecting to give the result in a big time so i decided to increase my response time, close time,receive time, open time and close time. So i added the following line in my web.config file
<bindings>
<webHttpBinding>
<binding closeTimeout="10:01:00" openTimeout="10:01:00" receiveTimeout="10:01:00" sendTimeout="10:01:00" maxBufferPoolSize="524288000" maxReceivedMessageSize="65536000" useDefaultWebProxy="true" allowCookies="false" crossDomainScriptAccessEnabled="true" name="cabservicebinding">
<security mode="None"></security>
</binding>
</webHttpBinding>
</bindings>
Step 3: To activate caching in my WCF results, I also decided to add the following line in web.config in system.servicemodel tag
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
After this, I restarted my IIS and the things started to work fine. Hope this helps to you all.
Thanks
Ritesh Tandon
I was facing a problem in my phonegap android mobile app with ASP.NET WCF REST Service, The error used to say 504 Gateway Time-out - The web server is not responding.
But the app was working on many devices but was giving this error on some devices including Samsung S3 I747.
My first impression was the problem is with the web server. I checked the performance which was ok and also checked the code which was .net wcf with LINQ which was also giving result on a decent speed and time.
I also restarted my IIS to clear the cache but still no affect the same error was produced again on the same device.
The first step i took was to enable error tracing in IIS, Which is available in IIS under name "Failed Request Tracing Rules". I activated this with error codes 400,402,500,504 to find out what causes this problem.
When i checked the log files it showed me the error code which was 402 when tried to connect with samsung s3 phone. Here is how i sorted out the problem in three easy steps.
Step 1: Since this error is a status code in a browser my first doubt was that the browser might not be supporting some configuration. So i added the below line in my web.config file
<system.web>
<browserCaps userAgentCacheKeyLength="256" />
Step 2: Since my WCF service was expecting to give the result in a big time so i decided to increase my response time, close time,receive time, open time and close time. So i added the following line in my web.config file
<bindings>
<webHttpBinding>
<binding closeTimeout="10:01:00" openTimeout="10:01:00" receiveTimeout="10:01:00" sendTimeout="10:01:00" maxBufferPoolSize="524288000" maxReceivedMessageSize="65536000" useDefaultWebProxy="true" allowCookies="false" crossDomainScriptAccessEnabled="true" name="cabservicebinding">
<security mode="None"></security>
</binding>
</webHttpBinding>
</bindings>
Step 3: To activate caching in my WCF results, I also decided to add the following line in web.config in system.servicemodel tag
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
After this, I restarted my IIS and the things started to work fine. Hope this helps to you all.
Thanks
Ritesh Tandon
1 comment:
thanks , will try to follow the same steps
Post a Comment
Comments are welcome, Please join me on my Linked In account
http://in.linkedin.com/pub/ritesh-tandon/21/644/33b