2009-07-16 7 views
0

Quelle est la différence entre l'utilisation d'un attribut WebGetWCF WebGet ResponseFormat Vs WebOperationContext.OutgoingResponse.ContentType

 
[WebGet(ResponseFormat = WebMessageFormat.Xml)] 

et réglage manuel du type de contenu?

 
WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml"; 

J'ai une application Silverlight qui fait cette demande à WCF. Je regarde le trafic et la demande/réponse pour le fichier ClientAccessPolicy.xml me ressemble exactement. Le problème est que la définition manuelle du type de contenu fonctionne correctement dans tous les navigateurs, mais l'utilisation de WebGet entraînera l'impossibilité pour l'application Silverlight de se connecter aux services WCF sur FireFox uniquement. Cela fonctionne dans tous les autres navigateurs. Et encore, le faire manuellement fonctionne bien dans FireFox.

Le faire manuellement est un problème lors du test unitaire, car WebOperationContext.Current est nul pendant le test. ResponseFormat est sur ... le format de la réponse: XML vs JSON.

Répondre

0

ContentType est un en-tête. Espérons qu'il soit réglé sur une valeur qui corresponde au format de réponse.

+0

L'utilisation de WebMessageFormat.Xml définit également ContentType sur application/xml. Mais quand cela se produit, Silverlight ne peut plus accéder aux services WCF. Je veux savoir ce que WebGet fait différemment qui provoque ce comportement. –

+0

Je ne sais pas, je ne connais pas SilverLight. Peut-être essayez WebMessageFormat.Xml et définissez ContentType sur "text/xml" –

Questions connexes