2013-07-02 2 views
7

Je rencontre le problème le plus étrange sur l'un de mes Macbooks. J'ai une application C# qui fonctionne sous mono sur mon Macbook. L'application communique avec un service Web via HTTP et fonctionne parfaitement sur mon ancien Macbook.Protocole HTTP non pris en charge dans WebRequest sous mono

J'ai acheté un nouveau macbook et testait ma demande, mais pour une raison étrange:

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

Lancers NotSupportedException avec l'URI fourni comme le message d'exception.

J'ai essayé également les éléments suivants:

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

et a obtenu la même exception. Je ne suis pas sûr pourquoi les choses deviennent folles et ne peuvent pas penser à tout ce qui pourrait causer cela, car il semble fonctionner parfaitement sur les autres Mac.

Edit:

La version Mono J'utilise est 2.10.11

La trace de pile pour l'exception est:

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 

Cordialement

+0

Quelles versions de Mono exécutez-vous, et peut-être fournir la piletrace pour l'exception – jakobandersen

+0

@miracledev J'ai édité la question avec l'information que vous avez demandée. J'espère qu'ils ont une certaine valeur. –

Répondre

1

Le WebRequest.GetCreateor obtient sa liste des protocoles pris en charge à partir de app.config/machine.config, en particulier, la section de configuration system.net/webRequestModules.

Si le protocole (dans votre cas "http") n'y est pas trouvé, il lève votre NotSupportedException. Donc, vérifiez votre machine.config, il manque probablement les webRequestModules corrects. Il devrait avoir "http" -> HttpRequestCreator. Ou, essayez d'appeler par réflexion le constructeur privé de HttpWebRequest, si tout le reste échoue.

Questions connexes