Skip to main content
 首页 » 编程设计

c#之WebClient异常,不支持并发I/O操作

2024年01月13日48lexus

我有一个返回 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 客户端实例:/

应用程序同时收到多个请求。

请您参考如下方法:

试试这个

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

那么你只有一个 WebClient 类的实例