2

webclient の新しいインスタンスを返す静的クラスがあります

public static class WebAccess
{
    public static WebClient GetWebClient()
    {
        return new WebClient();
    }
}

次に、このクラスを使用して、このようなページにアクセスします

WebAccess.GetWebClient().DownloadString(new Uri("http://" + WLCDomainUrl + ConfigurationManager.AppSettings["urlClearCache"].ToString() + "/?id=" + Request.QueryString["id"] + "&Type=RC"));

応答をキャッチしたくない

しかし、ほとんどの場合例外をスローしています

WebClient does not support concurrent I/O operations.

Stack Trace:

   at System.Net.WebClient.ClearWebClientState()
   at System.Net.WebClient.DownloadString(Uri address)
   at UpdateCache.ProcessLocationCacheRequest(String locId, Boolean isChain) in 

WebClient does not support concurrent I/O operations.

Stack Trace:

   at System.Net.WebClient.ClearWebClientState()
   at System.Net.WebClient.UploadString(Uri address, String method, String data)
   at System.Net.WebClient.UploadString(String address, String data)
   at CacheClassLibrary.ServerClass.APIServer.Create(String Id, String MobileWLCUrl) in 

何か助けて?? Webクライアントの新しいインスタンスで各リクエストを処理しているため、私はそれを理解できません:/

アプリケーションは同時に複数のリクエストを受け取ります。

4

1 に答える 1

-5

これを試して

public static class WebAccess
{
    WebClient instance;
    public static WebClient GetWebClient()
    {
        if (instance == null)
           instance = new WebClient();

        return instance;
    }
}

その場合、WebClient クラスのインスタンスは 1 つしかありません

于 2012-05-29T13:57:25.650 に答える