2011-11-14 11 views
1

私はWCF techで新しく、私はSilverlightアプリケーションからこのWCFを呼び出しています。WCFタイムアウトの問題

さて、私はWCFで定義された一つの機能を持って、この関数は、同じPCにインストールされているデータベースにSPを呼び出します。

このSPは実行に1分かかり、50個の列で82000行を返します。

アプリケーションでwcfタイムアウト間隔を20分に設定しました。私は私のSilverlightアプリからこのWCF関数を呼び出すとき

は今、それが20分後に私にタイムアウトエラーが発生します。 SPが実行するのに1分かかるので、なぜこのタイムアウトの問題が起こっているのだろうか?

タイムアウトの原因は何ですか?これを避けるために私は何ができますか?私はページングを実装することはできません。または、私はこのデータをすべて一度に取得する必要があります。

私を助けてください。あなたの参照のために私のweb.configファイルも添付しました。

Silverlightのweb.configファイル

<behaviors> 
     <endpointBehaviors> 
      <behavior name="ExportServiceRestBehavior"> 
       <webHttp /> 
      </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
      <behavior name="ExportServiceBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="true" /> 
       <serviceThrottling maxConcurrentSessions="2147483647" maxConcurrentInstances="2147483647" /> 
       <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service behaviorConfiguration="ExportServiceBehavior" name="DebtorBal.Web.ExportService1"> 
      <endpoint binding="basicHttpBinding" bindingConfiguration="ExportServiceBinding" 
       contract="DevExpress.Xpf.Printing.Service.IExportService" /> 
      <endpoint address="rest" behaviorConfiguration="ExportServiceRestBehavior" 
       binding="webHttpBinding" bindingConfiguration="ExportServiceRestBinding" 
       contract="DevExpress.Xpf.Printing.Service.IExportServiceRest" /> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="ExportServiceBinding" maxReceivedMessageSize="50000000" 
       transferMode="Streamed"> 
       <security> 
        <transport realm="" /> 
       </security> 
      </binding> 
      <binding name="myBindingForBigArrays" closeTimeout="00:10:00" 
       openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" 
       maxReceivedMessageSize="2147483647"> 
       <readerQuotas maxDepth="64" maxStringContentLength="2147483647" 
        maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
       <security> 
        <transport realm="" /> 
       </security> 
      </binding> 
     </basicHttpBinding> 
     <webHttpBinding> 
      <binding name="ExportServiceRestBinding" transferMode="Streamed" /> 
     </webHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://localhost:49261/LsnMonService.svc" 
      binding="basicHttpBinding" bindingConfiguration="myBindingForBigArrays" 
      contract="ServiceReference1.ILsnMonService" name="BasicHttpBinding_ILsnMonService" /> 
    </client> 
</system.serviceModel> 

WCFの設定ファイル

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" /> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <serviceThrottling maxConcurrentSessions="2147483647" maxConcurrentInstances="2147483647" /> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 
+0

サービスでエラーが発生していないかどうかを確認してください。未処理のエラーが発生すると、クライアント側でタイムアウトになる可能性があります。 – Tim

+0

私はチェックしました、エラーは来ていません – user867198

答えて

1

それはそれよりもおそらく簡単です。あなたはあなたのサービスを閉じたり処分したりしますか?そうでない場合は、サービス接続がまだ開いている可能性が最も高いです。タイムアウト限界に達するとエラーになります。データを元に戻した後、明示的にサービスを終了します。

+0

私はサービスを閉鎖しています。そして、実際に私の最初のサービスコールは上記のものです – user867198

+0

質問のカップル:あなたは結果を戻していますか?また、これは銀色のアプリの上にあるので、私はその呼び出しが非同期であると仮定しています。どの時点でサービスクライアントを終了しますか?あなたはサービスに電話をかけるC#コードを投稿できますか? –

+0

こんにちは、 遅く返事を申し訳ありません。 いいえ、私は結果を戻していません。このコードを使用してwcf関数を呼び出しました。 LsnMonWebService objClient = new LsnMonWebService(); objClient.rpt_deb_ContractGrowthAsync(FromDate); objClient.rpt_deb_ContractGrowthCompleted + =新しいEventHandler (objClient_rpt_deb_ContractGrowthCompleted); – user867198

関連する問題