2010-05-02 7 views
2

Comment activer/créer un point de terminaison MEX dans la configuration Web ci-dessous afin de pouvoir afficher le service depuis mon navigateur?Activer MEX dans un Web.Config

J'ai essayé quelques variantes de googling mais VS s'en plaint toujours. (Pas un élément enfant valide etc ...)

<configuration> 
<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
    <services> 
    <service name="MyApp.MyService" behaviorConfiguration="WebServiceBehavior"> 
     <endpoint address="" binding="webHttpBinding" contract="MyApp.IMyService"  behaviorConfiguration="JsonBehavior"> 
     <identity> 
      <dns value="localhost"/> 
     </identity> 
     </endpoint> 
    </service> 
    </services> 
    <behaviors> 
    <endpointBehaviors> 
     <behavior name="JsonBehavior"> 
     <webHttp/> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 
</system.serviceModel> 
</configuration> 

Cheers, Conor

Répondre

3

Dans VS, allez dans Outils > WCF Service Editor Configuration. Vous pouvez ouvrir votre web.config et bricoler avec vos points de terminaison WCF et les liaisons dans une interface graphique agréable qui (ne devrait pas) générer du XML que VS va se plaindre.

+0

... ou ouvrir l'outil vous; sur ma machine il est situé à 'C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ SvcConfigEditor.exe' – josh3736

+0

Hey josh3736, je viens de trouver cet outil à droite cette minute :) – Conor

+0

Je voudrais savoir de cet outil avant, gaspillé 2 jours à fouiller avec web.configs pour la liaison WCF, mettre cela à l'expérience! – Conor

2

Ajouter cette ligne à la web.config juste sous le point de terminaison de service:

<endpoint address="mex" binding="mexHttpBinding" name="MetadataEndpoint" 
contract="IMetadataExchange" /> 

Merci josh3736 pour la pointe de l'éditeur graphique, le seul problème que j'avais été, je ne savais toujours pas comment utiliser l'éditeur pour le faire, alors voici ce que je faisais:

  1. Dans VS, ouvrez Outils /service WCF Configuration Editor
  2. Ouvert t il web.config ou app.config fichier contenant votre définition du service
  3. Accédez au Services/(votre service)/Endpoints dossier
  4. Si le MetadataEndpoint est là, cliquez dessus et modifier la configuration à votre goût, sinon, cliquez droit sur le dossier Endpoint puis cliquez sur nouveau service Endpoint et configurer comme celui de l'image ci-dessous.

enter image description here

1

il suffit d'ajouter System.ServiceModel.dll sous les références de votre projet VS où votre fichier web.config est présent.

Ajoutez ensuite le code ci-dessous dans web.config (comme d'autres points d'extrémité de service):

<endpoint address="mex" binding="mexHttpBinding" 
contract="IMetadataExchange"/> 
Questions connexes