2009-10-28 7 views
3

je besoin d'aide, je suis nouveau dans le monde de WCF ayant récemment fait la transition de SOAP Webservices.cannnot accéder .svc sur un service RESTFul WCF déployé sur un serveur Web IIS locale

Le service WCF fonctionne bien quand je cours depuis l'VS2008 ASP.NET serveur de développement à savoir le mode de débogage. Le problème vient quand j'essaie d'accéder au service via IIS.

J'ai configuré un site Web sur mon serveur Web IIS local hébergé sur le port 8082 (http://localhost:8082) et j'ai créé un VirtualDirectory (1.0) qui pointe vers le répertoire physique qui contient mon code de service WCF. Le site Web est configuré pour faire ASP.NET 2.0.50727. Je peux accéder à la page d'atterrissage et aussi un assortiment de pages .aspx, mais lorsque je tente d'accéder au Service.svc, le navigateur ne devient jamais là et se trouve juste au ralenti.

http://localhost:8082/1.0/Service.svc 

Ma question est ce que la configuration que je manque pour obtenir le service de travailler à l'intérieur IIS depuis que je sais déjà cela fonctionne sous le serveur de développement.

Je joins une partie de mon web.config si cela pouvait aider.

<system.serviceModel> 
    <services> 
     <service name="Service1" behaviorConfiguration="Service1Behavior"> 
      <!-- Service Endpoints --> 
      <endpoint address="" binding="wsHttpBinding" contract="IService1"> 
       <!-- 
      Upon deployment, the following identity element should be removed or replaced to reflect the 
      identity under which the deployed service runs. If removed, WCF will infer an appropriate identity 
      automatically. 
     --> 
       <identity> 
        <dns value="localhost"/> 
       </identity> 
      </endpoint> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="Service1Behavior"> 
       <!-- 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="true"/> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 

Répondre

1

Vous parlez de services RESTful, mais vous utilisez le wsHttpBinding .... c'est pas le reste contraignant - ce serait « webHttpBinding ».

Pour la plupart, les services WCF SONT SOAP - une des fixations à l'exception du webHttpBinding sont des paramètres SOAP, de sorte que votre point de terminaison wsHttpBinding est certainement pas RESTful de quelque façon que ce soit. Vous pouvez communiquer avec lui en utilisant par ex. SoapUI ou mieux encore - le WcfTestClient dans votre dossier Visual Studio.

Vous ne pouvez pas attendre cependant d'obtenir des données en forme XML de retour par navigation juste à cette URL.

Marc

1

Par défaut IIS 7.0 n'est pas configuré pour services WCF, nous allons configurer IIS 7.0 pour exécuter les services WCF je briserai en pas toute la procédure.

http://basitblog.wordpress.com/2010/01/12/deploy-wcf-service-over-iis-7-0/

+1

Vous aurez besoin d'ajouter un élément à la liste de Todos. possible du réinstallation dernier cadre et vérifier que IIS est réglé sur (je juste eu la question où il a sauté en arrière en quelque sorte à 2,0, ce qui m'a causé quelques jours de retard). –

Questions connexes