2011-07-13 26 views
1

我有我在csharp中編寫的應用程序服務器。服務器與使用FLEX 4(Flash Builder 4.5)構建的Flash客戶端進行通信。FluorineFX rtmp連接超時

服務器和客戶端之間的通信使用RTMP完成。

對於服務器端的RTMP功能,我使用了FluorineFX(託管在IIS7中)。

所有連接都使用遠程過程調用完成,其中Flash客戶端在服務器中執行遠程過程並在RPC響應回調函數中獲取結果。

服務器也可以使用RPC將消息發送到客戶端。

我的問題是服務器在最後一個客戶端連接後6分鐘連接所有客戶端,我無法弄清楚它爲什麼這樣做。

與services-config.xml的樣子:

<services-config>  
    <channels>   
    <channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel"> 
     <endpoint uri="rtmp://{server.name}:1935" class="flex.messaging.endpoints.RTMPEndpoint"/> 
    </channel-definition> 
    </channels> 
</services-config> 

的web.config文件包含以下配置:

<fluorinefx> 
    <settings>   
     <rtmpServer> 
     <threadpool minWorkerThreads="0" maxWorkerThreads="25" idleTimeout="60000"/> 
     <rtmpConnection pingInterval="0" maxInactivity="60000" maxHandshakeTimeout="0"/> 
     <rtmptConnection pingInterval="5000" maxInactivity="60000" maxHandshakeTimeout="5000"/> 
     <rtmpTransport receiveBufferSize="4096" sendBufferSize="4096" tcpNoDelay="true"/> 
    </rtmpServer> 
</settings> 

任何解決timouts幫助將不勝感激

Koby

+0

感謝您的評論。完成 –

回答

1

問題解決了。

這是由於IIS7應用程序池配置引起的:在其中一個應用程序服務器上,應用程序池空閒超時設置爲6分鐘。所以在沒有任何http請求的應用程序的6分鐘後,應用程序池卸載了包括Fluorine Gateway在內的所有組件。

當網關的程序集被卸載時,它會停止終止所有連接的網關。

更改應用程序池空閒超時的方式如下:

在IIS 6:去應用程序池部分,並用鼠標右鍵單擊>屬性上它承載ASP.NET應用程序池有問題。轉到性能選項卡,取消「在空閒後關閉工作進程:」

在IIS 7:,轉到連接窗格中,找到應用程序池,選擇高級設置哪些主機您的應用程序池。找到「空閒超時」屬性並將其設置爲「0」(禁用超時)。

Koby