このコードを使用する場合:
//in this timeout code necessary?
ServiceClient.Timeout = 10;
ServiceClient.GetRestaurantsByNameAsync (MenuFinderApp.RestaurantSearchName);
ServiceClient.GetRestaurantsByNameCompleted += delegate(object sender, GetRestaurantsByNameCompletedEventArgs args) {
//code to show records
};
いくつかのレコードを返します。5 ~ 10 分ほど待ってからコードを再度実行すると、タイムアウト エラーが発生します。これはなぜ発生し、どうすれば接続を開いたままにできますか? 60 分のタイムアウトを指定する必要がありますか? WCF サービスの Web.config は次のとおりです。
<binding name="BasicHttpBinding_IMenuFinderAppService" closeTimeout="infinite" openTimeout="infinite" receiveTimeout="infinite" sendTimeout="infinite" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="500000" maxBufferPoolSize="524288" maxReceivedMessageSize="500000" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="500000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>