環境: 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:從零開始的軟體開發生活」
請大家繼續支持 ^_^