Note that there are some explanatory texts on larger screens.

plurals
  1. POTimeout problem in distributed transaction over WCF net.tcp binding
    primarykey
    data
    text
    <p>I have a strange timeout problem when running a distributed transaction over a WCF net.tcp binding. The transaction always times out after exactly 10 minutes. I think I have set all the timeouts I know to a higher value than that (15 minutes) but I'm probably overlooking something. I'm calling a WCF net.tcp service that's hosted in IIS7.5.</p> <p>On the service side, I have the following binding config:</p> <pre><code>&lt;binding name="OrgSyncService_NetTcpBinding" portSharingEnabled="true" transactionFlow="true" maxReceivedMessageSize="1048576000" openTimeout="00:01:00" receiveTimeout="00:15:00" sendTimeout="00:15:00"&gt; &lt;security mode="Transport"&gt; &lt;transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/&gt; &lt;/security&gt; &lt;readerQuotas maxStringContentLength="1073741824" /&gt; &lt;reliableSession enabled="true" inactivityTimeout="00:15:00" /&gt; &lt;/binding&gt; </code></pre> <p>As you can see, all relevant timeouts are 15 minutes. On the client-side, the binding configuration is as follows:</p> <pre><code>&lt;binding name="NetTcpBinding_OrgSyncService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:15:00" sendTimeout="00:15:00" transactionFlow="true" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288" maxConnections="10" maxReceivedMessageSize="1048576000"&gt; &lt;readerQuotas maxDepth="32" maxStringContentLength="1073741824" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /&gt; &lt;reliableSession ordered="true" inactivityTimeout="00:15:00" enabled="true" /&gt; &lt;security mode="Transport"&gt; &lt;transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /&gt; &lt;message clientCredentialType="Windows" /&gt; &lt;/security&gt; &lt;/binding&gt; </code></pre> <p>Again, all timeouts that I'm aware of are set to 15 minutes. Finally, the code that starts the transaction:</p> <pre><code>var options = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TimeSpan.FromMinutes(15) }; using (var ts = new TransactionScope(TransactionScopeOption.Required, options)) { // Do transactional work. // Call web service. service.HandleSourceChanges(listOfChanges); ts.Complete(); } </code></pre> <p>The web service method itself has the following signature:</p> <pre><code>[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] public void HandleSourceChanges(IEnumerable&lt;OrgSyncSourceChange&gt; sourceChanges) { /* Handle changes and store them in the database. */ } </code></pre> <p>But, as I said, exactly 10 minutes after starting the transaction, it times out. I'm not sure it's the transaction itself that times out. It could be another component that times out that causes the transaction to time out.</p> <p>What am I missing? Is there an IIS setting I don't know about? An MSDTC setting?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload