Question

Je suis en train d'apprendre comment construire des services RESTful avec WCF en recréant le projet sur ce blog par Anthony Steele. Il utilise le code XML suivant dans sa configuration pour configurer le point final pour le service.

    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8080/greeter"/>
      </baseAddresses>
    </host>

Cependant, lorsque je tente de faire la même chose dans mon web.config site Web ASP.NET 3.5, je ne peux pas accéder à mon service. Voici le XML que je utilise:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="GreeterBehavior">
        <serviceMetadata httpGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="false"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service behaviorConfiguration="GreeterBehavior" name="Greeter">
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:49268/TestREST/webapi/services/greeter"/>
        </baseAddresses>
      </host>
      <endpoint address="" binding="wsHttpBinding" contract="IGreeter">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>
  </services>
</system.serviceModel>

J'imagine ma configuration me permettrait de naviguer vers http: // localhost: 49268 / TestREST / WebAPI / services / de écran d'accueil et de voir mon service. Tout ce que je reçois est un message ressource introuvable - Suis-je manque quelque chose

Edit: Une partie de mon problème était ma liaison a été wsHttpBinding. En utilisant webHttpBinding m'a permis d'utiliser le service correctement -. Sauf, la section de configuration baseaddress n'a toujours pas d'effet

Était-ce utile?

La solution

Mon intuition est que le point de terminaison de service n'est pas créé avec succès.

Dans le service « nom » attribut que vous n'êtes pas compris les FQN (Nom complet) du type de service. Secondairement, dans le paramètre « contrat » attribut vous n'êtes pas non compris les FQN au type de contrat.

D'autre part, cela peut être un problème de port. Pour être sûr, essayez d'exécuter le WcfTestClient.exe qui est inclus dans la distribution Visual Studio 2008. Si vous pouvez vous connecter à http: // localhost: 49268 / TestREST / WebAPI / services / greeter / MEX, alors vous savez que ce n'est pas un problème de port.

Supposant que vous pouvez vous connecter via MEX, puis essayez d'exercer certaines des méthodes qui seraient probablement mis en correspondance avec http: // localhost:. 49268 / TestREST / WebAPI / services / greeter

Si vous utilisez le serveur, voir quelques détails précieux sur HttpCfg.exe ici: WCF ServiceHost basicHttpBinding 503 erreur

Si vous avez besoin de plus de détails sur WcfTestClient, les chercher ici: Est-il possible de faire le travail de WcfTestClient pour les canaux de transport personnalisé

Au cas où:. copier l'échantillon in extenso et vérifiez qu'il fonctionne tel que défini, y compris le fichier de configuration, avant de faire le moindre écart par rapport à ce

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