私はよくこのようにWebサービスを使用します
public void CallWebservice()
{
mywebservice web = new mywebservice();
web.call();
}
しかし、時々私はこれをします
private mywebservice web;
public Constructor()
{
web = new mywebservice();
}
public void CallWebservice()
{
web.call();
}
2 番目のアプローチは非常に気に入っていますが、タイムアウトになることがあり、アプリケーションを再起動する必要がありました。最初のアプローチではオーバーヘッドが発生し、あまり効率的ではないと思います。理由がわからない)。
オーバーライドされた関数 GetWebRequest で KeepAlive プロパティを false に変更するタイムアウトを超える記事 ( Web Service Woes (A light at the end of the tunnel?) ) を見つけました。コードは次のとおりです。
Protected Overrides Function GetWebRequest(ByVal uri As System.Uri) As System.Net.WebRequest
Dim webRequest As Net.HttpWebRequest = CType(MyBase.GetWebRequest(uri), Net.HttpWebRequest)
webRequest.KeepAlive = False
Return webRequest
End Function
問題は、Web サービスのタイムアウトを永久に延長することは可能かということです。最後に、この問題を処理するために Web サービスをどのように実装しますか?