service wcf renvoie la “méthode ne permet pas” d'erreur
Je suis en train de passer de paramètre de l'objet en tant que format json à wcf service restful.
service conratc code comme celui-ci;
[WebInvoke(
Method = "POST",
BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
UriTemplate="PR")]
[OperationContract]
TWorkRequestPostResult PostRequest(TWorkRequestPostArgs args);
Et de mon site web.fichier de config comme ceci;
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/>
</modules>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true" />
</system.webServer>
Quand j'essaie d'appeler le service "http://localhost/serviceurl/PR" l'url, le Service rendu "Méthode non autorisée" message d'erreur.
Vous devez vous connecter pour publier un commentaire.
Êtes-vous en appelant le service à partir du navigateur? Si oui, le navigateur demande le service à l'aide de HTTP GET, tandis que la méthode de service est mappée à HTTP POST,
Method = "POST"
, de sorte que l'erreur"Method not allowed"
.À corriger, soit changer de
Method = "GET"
si elle fait sens en ce qui concerne le REPOS ou d'essayer de l'appel de la méthode de service à partir d'un outil qui prend en charge POST, par exemple, Fiddler ou WcfTestClient