Я написал метод отправки сообщения об ошибке через HTTP POST. Я использую OSX-Lion и MonoDevelop. Код работает, когда приложение вызывается из MonoDevelop. Когда я запускаю .app, он выдает исключение:
System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.WebRequest ---> System.DllNotFoundException: libc.dylib
at (wrapper managed-to-native) System.Platform:uname (intptr)
at System.Platform.get_IsMacOS () [0x00000] in <filename unknown>:0
at System.Net.WebRequest..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at ch.fangorn.LIF.Access.SubmitCrash.Submit (Int32 projectId) [0x00000] in <filename unknown>:0
В данный момент я вызываю метод Submit напрямую, а не через catch. Так как это работает, когда отладчик подключен, я застрял. Что я до сих пор пробовал:
- Сборка моно-приложения (Создать установщик Mac)
- Создайте все с помощью Platform target x86
- Бета-версия Mono и MonoDevelop
Код, который IMO вызывает сбой.
HttpWebRequest hwr = WebRequest.Create(turi) as HttpWebRequest;
string authInfo = user + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
hwr.Headers["Authorization"] = "Basic " + authInfo;
hwr.Method = "POST";
hwr.ContentType = "text/xml";
hwr.ContentLength = encData.Length;
Stream send = hwr.GetRequestStream();
send.Write(encData, 0, encData.Length);
send.Close();
hwr.GetResponse();
MonoDevelop: 2.8.5
Моно: 2.10.8