web-dev-qa-db-ja.com

.NET Webサービスのタイムアウト値の設定

SharePointサイトに存在するC#で記述されたWebサービスがあります。次のコードでweb.configを変更しました。

<configuration>
  <system.web>
    <httpRuntime executionTimeout="360" />

...

IIS Inetpubファイル、SP ISAPI web.configファイルおよびSP layouts web.config。また、machine.configファイルを同じコードで変更し、IISで表示されるタイムアウトをバンプしようとしました。

Windows C#アプリケーションからこのWebサービスを呼び出すと、Webメソッドにステップインして変数のデバッグを開始できますが、短時間(約1分、おそらくそれ以下)後に変数値が返されます。

System.Net.WebException "要求が中止されました:操作がタイムアウトしました。"

正しいタイムアウト値を設定する必要がある場所と方法を把握しようとしています。再起動IIS=すべての変更を行った後、何も変更せずに異なる結果が得られます。

ありがとう

25
Dan McKinnon

バインディングとエンドポイントアドレスを指定してクライアントを作成した後、OperationTimeoutを割り当てることができます。

client.InnerChannel.OperationTimeout = new TimeSpan(0, 5, 0);
26
p_champ

Webサービスプロキシクラスでタイムアウト値を設定してみてください。

WebReference.ProxyClass myProxy = new WebReference.ProxyClass();
myProxy.Timeout = 100000; //in milliseconds, e.g. 100 seconds
25