2014-01-09 41 views
0

我在一個非常大的項目上做了一些支持。我的任務是將會話超時更改爲更長的時間,然後是現在的時間。現在他們在大約10分鐘左右就被註銷了。我發現了很多不同的事情,我需要一些幫助來搞清楚他們所做的一切。會話超時差異

首先,我得到了這一個:

<sessionState mode="InProc" timeout="240" cookieless="UseCookies" /> 

這是後240分鐘triggerd所以它不可能是這一個。 然後我得到這個:

<binding name="WSHttpBinding_IFootprintService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:00:01" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <reliableSession ordered="true" inactivityTimeout="00:00:01" enabled="false" /> 
     <security mode="Message"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" /> 
     </security> 
    </binding> 
    <binding name="AdministrationEndpoint" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:00:01" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <reliableSession ordered="true" inactivityTimeout="00:00:01" enabled="false" /> 
     <security mode="Message"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" /> 
     </security> 
    </binding> 
    <binding name="ProductionEndpoint" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:00:01" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <reliableSession ordered="true" inactivityTimeout="00:00:01" enabled="false" /> 
     <security mode="Message"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" /> 
     </security> 

在該代碼中有很多不同的東西,我可能會。我只是無法弄清楚closeTimeout,openTimeout,receiveTimeout,sendTimeout,inactivitytimeout和sessionstate超時之間的區別是什麼?

回答

1

借款@marc_s響應在this question

最重要的是的SendTimeout,它說多久客戶 將等待您的WCF服務的響應。您可以在設置中指定 小時:分鐘:秒 - 在我的示例中,我將 超時設置爲25分鐘。

openTimeout顧名思義,當您打開連接到WCF服務時,您願意等待的時間量爲 。 同樣,closeTimeout是關閉 連接(處理客戶端代理)時您要等待 異常拋出之前的時間。

receiveTimeout有點像爲的SendTimeout鏡子 - 而 的的SendTimeout是時間,你會等待 服務器的響應量,receiveTimeout是量你會給你 客戶端來接收和處理來自服務器的響應。

如果你來回發送「正常」的消息,既可以 很短 - 尤其是receiveTimeout,因爲接收SOAP消息 ,解密,檢查和反序列化應採取幾乎 沒有時間。這個故事與流媒體不同 - 在這種情況下,您可能需要更多時間在客戶端上實際完成從服務器獲取的流的「下載」 。

希望它能幫助,

+0

所以非他們的,使用戶自動關閉LOGG? 我知道這樣做: 但它得到了其他東西,使用戶登錄:/因爲這需要用戶4小時註銷? –

+0

它應該是使用戶註銷的不活動時間。 – avenet

+0

用戶登錄需要1分多鐘。也許如果sendtimeout被觸發,它會觸發下一個超時,以便所有超時的添加超時是用戶註銷所需的時間? –

1

希望這個網站可以幫助你瞭解超時有點http://msdn.microsoft.com/en-us/library/hh924831(v=vs.110).aspx 快速摘要:

在客戶端:
的SendTimeout - 用來初始化OperationTimeout,它支配着整個發送消息的過程,包括接收請求/應答服務操作的應答消息。從回調合同方法發送回覆消息時,此超時也適用。

OpenTimeout - 使用未指定明確的超時值時,打開通道時

CloseTimeout - 使用時沒有指定明確的超時值

ReceiveTimeout關閉通道時 - 不使用客戶端超時

服務端:
SendTimeout,OpentTimeout,CloseTimeout與客戶端上的相同

ReceiveTi meout - 服務框架層用來初始化會話空閒超時,它控制會話在超時之前可以空閒多久。

也看到這個帖子有關WCF會話超時WCF Session Timeout