je suivais cela pour créer un service Web JSON en asp.net 3.5:Erreur lors de la tentative de créer un service web JSON dans asp.net
Creating JSON-enabled WCF services in .NET 3.5 (archive.org)
(était à: http://www.pluralsight.com/community/blogs/fritz/archive/2008/01/31/50121.aspx)
Il fonctionne très bien Si je veux l'utiliser en interne, mais comme je veux me connecter à l'externe, j'ai reçu une erreur disant: "La publication de métadonnées pour ce service est actuellement désactivée." J'ai donc essayé de l'activer mais maintenant j'obtiens l'erreur: "Impossible d'ajouter l'extension de comportement 'serviceMetadata' au comportement du noeud final 'MyServiceAspNetAjaxBehavior' car le type de comportement sous-jacent n'implémente pas l'interface IEndpointBehavior.".
Je sais que je fais quelque chose de mal dans web.config, je n'arrive pas à comprendre, qu'est-ce que je fais de mal? Merci!
C'est dans web.config:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="MyServiceAspNetAjaxBehavior">
<enableWebScript />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
//Needed to add this to be able to use the web service on my shared host
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://www.domain.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<services>
<service name="MyService">
<endpoint address="" behaviorConfiguration="MyServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="MyService" />
<endpoint contract="MyService" binding="mexHttpBinding" address="mex" />
</service>
</services>
En MyService.cs:
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{
[OperationContract]
public string GetForecast(string str)
{
return "Hello World";
}
}
Dans MyService.svc
<%@ ServiceHost Language="C#" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %>
Merci j'ai changé à: mais obtient toujours la même erreur, ai-je besoin de changer quelque chose dans mon web fichier de service? –
Je veux juste qu'un simple service web json soit appelé depuis mon iphone, n'est-ce pas possible avec asp.net? Y a-t-il quelque chose qui me manque ici? –
Oui c'est possible - vous ne pouvez pas avoir de métadonnées associées (les services REST ne connaissent pas ce concept) –