Question

J'ai donc créé une application de service WCF et je l'ai hébergée sur IIS7.Il dispose actuellement de quelques méthodes de test «helloworld».Lorsque je l'exécute dans mon navigateur, j'obtiens cet écran: entrez la description de l'image ici

Maintenant, le service lui-même fonctionne très bien, mais comment puis-je afficher les opérations comme ceci: entrez la description de l'image ici

Merci à marc_s pour le lien: http://www.dotnetcurry.com/ShowArticle.aspx? ID= 399 que j'ai suivi afin que ma configuration Web soit maintenant configurée comme:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="WcfServer.Service1">
        <endpoint address="" binding="webHttpBinding" contract="WcfServer.IService1" behaviorConfiguration="HelpBehaviour" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above 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="false" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="AjaxBehavior">
          <enableWebScript />
        </behavior>
        <behavior name="HelpBehaviour">
          <webHttp helpEnabled="true"/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
        <directoryBrowse enabled="true" showFlags="Date, Time, Size, Extension" />
  </system.webServer>
</configuration>

Cependant, cela ne fonctionne que localement.Lorsque je publie sur mon serveur sur IIS7, j'obtiens une page d'erreur 404 lorsque je clique sur le lien d'aide.Quelqu'un sait-il pourquoi ou en a déjà rencontré?

(Le dernier bit a été résolu en exécutant: aspnet_regiis.exe -iru)

Était-ce utile?

La solution

Si vous avez un service WCF avec une liaison SOAP, vous n'avez malheureusement pas de chance: il n'y a aucun moyen dans WCF prêt à l'emploi d'obtenir une liste similaire à ASMX avec tous les services.

Avec la liaison REST (webHttpBinding) et .NET 4.0, vous pouvez générer une page d'aide automatique qui répertorie les modèles d'URI, les méthodes HTTP prises en charge, etc. Vous pouvez également modifier cette page dans une certaine mesure.

Pour que cette page d'aide automatique soit générée, vous devez définir (et référencer) un comportement de point de terminaison:

<behaviors>
   <endpointBehaviors>
       <behavior name="HelpBehavior">
           <webHttp helpEnabled="true" />
       </behavior>
   </endpointBehaviors>
</behaviors>

Ensuite, référencez ce comportement à partir de votre point de terminaison webHttpBinding, et vous avez terminé.

En savoir plus:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top