There are 2 projects within the MVC solution. A web app and a report app. Reports are on demand from the web app. Web app runs fine with the inclusion of a timeout in the reporting controller. (_context.Database.SetCommandTimeout(300);).
If I run any of the reports or a WCF job I get the following errors, BUT if I run them immediately again they run ok. If I wait till the next day I get the same results.
Seems to be a common problem related to Reporting Services but I have run out of ideas.
Reporting Error: AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.)
System.Threading.Tasks.Task.GetResultCore(bool waitCompletionNotification)
TimeoutException: The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.
System.Runtime.AsyncResult.End(IAsyncResult result) in AsyncResult.cs, line 354.
WCF Error: TimeoutException: The HTTP request to 'http://keeper/ReportServer/ReportExecution2005.asmx' has exceeded the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout.
System.ServiceModel.Channels.HttpChannelFactory+HttpClientRequestChannel+HttpClientChannelAsyncRequest.SendRequestAsync(Message message, TimeoutHelper timeoutHelper) in HttpChannelFactory.cs, line 1048
TimeoutException: The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.
System.Runtime.AsyncResult.End(IAsyncResult result) in AsyncResult.cs, line 354.
Have added a web.config file:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore requestTimeout="00:30:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding openTimeout="00:10:00"
closeTimeout="00:10:00"
sendTimeout="00:10:00"
receiveTimeout="00:10:00"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
</binding>
</wsHttpBinding>
<basicHttpBinding>
<binding openTimeout="00:10:00"
closeTimeout="00:10:00"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647">
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
The requestTimeout="00:30:00" stopped the WCF job falling over so now either doesn't start or runs to completion. Nothing else in the web.config seemed to affect the results.
Have also looked at C:/Program Files/Microsoft SQL Server Reporting Services/SSRS/ReportServer/rsreportserver.config file but cant see any time outs which might relate to the 00:01:00 problem.
4/12/2020 Have changed the web.config file to:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore startupTimeLimit="600" shutdownTimeLimit="600" requestTimeout="00:30:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ServiceReference1"
openTimeout="00:10:00"
closeTimeout="00:10:00"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647">
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="ServiceReference1">
<endpoint address="http://Keeper/ReportServer/ReportExecution2005.asmx"
binding="basicHttpBinding"
bindingConfiguration="ServiceReference1"
contract=""/>
</service>
</services>
</system.serviceModel>
</location>
</configuration>
enter code here
Latest web.config 6/12/2020
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore requestTimeout="00:30:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>