2013-07-02 16 views
7

Mam najdziwniejszy problem na jednym z moich Macbooków. Mam aplikację C#, która działa pod mono na moim MacBooku. Aplikacja komunikuje się z usługą sieciową za pośrednictwem protokołu HTTP i działa doskonale na moim starym MacBooku.Protokół HTTP nie jest obsługiwany w WebRequest pod mono

kupiłem nowy MacBook i testował mój wniosek, ale z jakiegoś powodu dziwnej:

HttpWebRequest myReq = 
(HttpWebRequest)WebRequest.Create(sURI); 

Zgłasza NotSupportedException z dostarczonego URI jako komunikat wyjątku.

Próbowałem również następujące:

HttpWebRequest myReq = 
(HttpWebRequest)WebRequest.Create("http://www.google.com"); 

i dostał ten sam wyjątek. Nie jestem pewien, dlaczego rzeczy szaleją i nie mogą wymyślić niczego, co mogłoby spowodować to, ponieważ wydaje się, że działa doskonale na innych komputerach Mac.

Edit:

wersja

Mono Używam jest 2.10.11

Ślad stosu wyjątku jest:

Webrequest.Create Exception string : System.NotSupportedException: http://www.google.com/ 
    at System.Net.WebRequest.GetCreator (System.String prefix) [0x00000] in <filename unknown>:0 
    at System.Net.WebRequest.Create (System.Uri requestUri) [0x00000] in <filename unknown>:0 
    at System.Net.WebRequest.Create (System.String requestUriString) [0x00000] in <filename unknown>:0 
    at MyApp.XSPManager.GeneralSOAPFunction (System.String serverName, System.String settingsAsXml, SharedLib.zErrorCodes& errorCode, System.String& message, System.String& actionType) [0x00000] in <filename unknown>:0 

Pozdrowienia

+0

Które wersje Mono używasz i może dostarczyć stos śledzenia dla wyjątku – jakobandersen

+0

@miracledev Edytowałem pytanie z żądanymi informacjami. mam nadzieję, że mają jakąś wartość ... –

Odpowiedz

1

WebRequest.GetCreateor dostaje swoją listę obsługiwanych protokołów z pliku app.config/machine.config, w szczególności sekcja konfiguracji system.net/webRequestModules.

Jeśli nie zostanie znaleziony protokół (w twoim przypadku "http"), zostanie zgłoszony wyjątek NotSupportedException.

Sprawdź więc plik machine.config, prawdopodobnie brakuje prawidłowego pliku webRequestModules. Powinien mieć "http" -> HttpRequestCreator.

Lub spróbuj wywołać prywatnego konstruktora HttpWebRequest poprzez odbicie, jeśli wszystko inne zawiedzie.

Powiązane problemy