2013-07-02 20 views
7

Sto riscontrando il problema più strano su uno dei miei MacBook. Ho un'applicazione C# che gira sotto mono sul mio Macbook. L'applicazione comunica con un servizio web tramite HTTP e funziona perfettamente sul mio vecchio Macbook.Protocollo HTTP non supportato in WebRequest in mono

ho comprato un nuovo MacBook e stava mettendo alla prova la mia domanda, ma per qualche strana ragione:

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

Lanci NotSupportedException con la condizione URI come il messaggio di eccezione.

Ho anche provato il seguente:

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

e ottenuto la stessa eccezione. Non sono sicuro del perché le cose stanno diventando pazzesche e non riesco a pensare a nulla che possa causare questo dato che sembra funzionare perfettamente su altri Mac.

Edit:

versione

Il Mono che sto utilizzando è 2.10.11

L'analisi dello stack per l'eccezione è:

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 

saluti

+0

Quali versioni di Mono state eseguendo, e magari fornite lo stacktrace per l'eccezione – jakobandersen

+0

@miracledev Ho modificato la domanda con le informazioni richieste. spero che abbiano un qualche valore ... –

risposta

1

Il WebRequest.GetCreateor ottiene la sua lista dei protocolli supportati da app.config/machine.config, in particolare, la sezione di configurazione system.net/webRequestModules.

Se il protocollo (nel tuo caso "http") non viene trovato lì, genera NotSupportedException.

Quindi, controllate il vostro machine.config, probabilmente mancano i webRequestModules corretti. Dovrebbe avere "http" -> HttpRequestCreator.

Oppure, prova a chiamare il costruttore privato di HttpWebRequest tramite reflection, se tutto il resto fallisce.

Problemi correlati