[Xamarin]System.Net.Sockets.SocketException: Too many open files

環境: iOS,Xamarin

最近透過 Xamarin Studio 寫 iOS app 時,

app Run到一半,就會出現以下的錯誤訊息,

System.Net.WebException: Error: ConnectFailure (Too many open files) ---> System.Net.Sockets.SocketException: Too many open files

at System.Net.Sockets.Socket..ctor (AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) [0x00060] in System.Net.Sockets/Socket.cs:214

at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x000f6] in

System.Net/WebConnection.cs:189

--- End of inner exception stack trace ---

at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00045] in

System.Net/HttpWebRequest.cs:829

at --- End of stack trace from previous location where exception was thrown ---

 

因為app中一段時間就會透過 HttpClient call WebAPI,程式類似如下,

 

HttpClient client = new HttpClient ();

HttpResponseMessage response = await client.PostAsync (“webapi url” , postContent);

看來似乎是因為沒有將 HttpClient dispose 掉的關係。

所以就改使用 Using 比較方便,如下,

using(HttpClient client = new HttpClient ()){
   …
   HttpResponseMessage response = await client.PostAsync (“webapi url” , postContent);

   …
}

這樣就可以了哦

 

 

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^