HTTP POST를 통해 오류보고를 제출하는 방법을 작성했습니다. OSX-Lion과 MonoDevelop를 실행합니다. 코드는 MonoDevelop에서 응용 프로그램을 호출 할 때 작동합니다. .app을 실행하면 예외가 throw됩니다.HttpWebRequest MonoDevelop 외부에서 충돌 발생
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
지금은 catch를 통하지 않고 직접 Submit 메서드를 호출합니다. 디버거가 연결될 때 작동하기 때문에 좌초가됩니다. 지금까지 시도하는 것 :
- 빌드 모노 응용 프로그램 번들 (맥 설치 만들기)
- 플랫폼 대상 86와 모든 빌드
- 모노 및 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
당신은 당신의 레퍼런스를 보았습니까? 동일한 이상한 오류 모드를 사용하여 이전 버전에도 불구하고 MonoDevelop에서 System.Web 및 다른 사람들에 대한 참조를 제거하고 읽을 필요성이있었습니다. –
나는 min references가있는 축소 된 샘플을 만들었습니다. 이제 더 나은 오류 메시지가 나타납니다. System.DllNotFoundException : libc.dylib – Ganwell
아, 그게 훨씬 낫습니다. 모든 dylib 캐시를 업데이트하십시오. 저는 OSX 사람이 아니지만, 최근에 업데이트 된 시스템에서 Gtk #/Mono 응용 프로그램을 빌드 할 때 비슷한 문제가있었습니다. –