2010-06-15 5 views
1

Mon application Silverlight 4 est hébergée dans l'application Web ASP.NET MVC 2. Cela fonctionne très bien lorsque je navigue avec Internet Explorer 8. Cependant Google Chrome (version 5) ne peut pas trouver les contrôleurs ASP.NET. Plus précisément, le contrôleur ASP.NET suivant fonctionne à la fois avec Chrome et IE. Si je ne décommente pas l'attribut [OutputCache], alors il fonctionne avec IE mais pas avec Google Chrome. De plus, j'utilise le modèle de liaison personnalisée avec les contrôleurs, donc si je vous écris ce qui suit:Problème de routage ASP.NET MVC avec le client Google Chrome

public ContentResult TestMe(UserContext userContext) 
{ 
    ... 
} 

cela fonctionne aussi avec IE, mais encore une fois pas avec Chrome qui me donne un message d'erreur indiquant que la ressource n'a pas été trouvé. Bien sûr, j'ai configuré IIS 6 pour gérer toutes les demandes via aspnet_isapi.dll et j'ai enregistré le classeur de modèle personnalisé dans la méthode Global.asax de mon application web à l'intérieur de Application_Start(). Quelqu'un peut-il m'expliquer quelle pourrait être la cause? Je vous remercie.

Répondre

1

Cela ne répond pas directement à votre question, mais je vous suggère d'essayer Fiddler, et de regarder la demande actuelle qui est envoyée par le navigateur. Comparez les différences et essayez de comprendre ce qui ne va pas (vous pouvez utiliser l'onglet "Request Builder" dans Fiddler pour eh-hm, violon avec les paramètres).

+0

Merci codeka. Roches Fiddler. J'ai trouvé le problème; Google Chrome met "Type de contenu: application/x-www-form-urlencoded" dans l'en-tête de la requête (code l'URL) mais IE ne le fait pas. Donc, la prochaine question est de savoir comment désactiver l'encodage d'URL dans Chrome. – synergetic

1

Ce que j'ai découvert est que deux méthodes de WebRequest: Créer et CreateHttp se comportent différemment lorsqu'ils en utilisant le protocole HTTPS. Toujours utiliser Créer la méthode pour instancier la bonne requête selon un protocole. J'ai eu une situation similaire et ce que j'ai. Pour le code suivant, nous avons Introuvable exception en essayant d'obtenir un contenu en utilisant WebRequest:

HttpWebRequest request = WebRequest.CreateHttp(uri); 

Mais la pièce suivante fonctionne bien:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);