2010-10-09 5 views
1

J'ai un service WCF sur www.domain.com/Service.svc que je connecte à l'aide de jQuery depuis mon site Web asp.net. Tout fonctionne parfaitement si l'utilisateur accède à mon site Web avec www.domain.com. Mais si l'utilisateur utilise uniquement domain.com j'obtiens l'erreur:Problèmes d'accès au service WCF sans www

There was no channel actively listening at 'http://domain.com/Service.svc/get?date=2010-10-09'. 
This is often caused by an incorrect address URI. Ensure that the address to which   
the message is sent matches an address on which a service is listening. 

Dans mon web.config j'utilise la balise serviceHostingEnvironment pour obtenir le service en cours d'exécution sur mon hébergeur (il ne fonctionne pas autrement). Peut-être que c'est ce qui provoque l'erreur?

Voici mon system.serviceModel dans web.config (j'ai eu quelques problèmes pour configurer le service Web et c'est pourquoi mon web.config peut-être un peu en désordre:

<system.serviceModel> 
    <behaviors> 
     <endpointBehaviors> 
      <behavior name="ServiceAspNetAjaxBehavior"> 
       <enableWebScript /> 
      </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
      <behavior name="ServiceBehavior"> 
       <serviceDebug includeExceptionDetailInFaults="true" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 


    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"> 
     <baseAddressPrefixFilters> 
      <add prefix="http://www.domain.com"/> 
     </baseAddressPrefixFilters> 
    </serviceHostingEnvironment> 

    <services> 
     <service behaviorConfiguration="ServiceBehavior" name="Service"> 
      <endpoint address="" behaviorConfiguration="ServiceAspNetAjaxBehavior" 
    binding="webHttpBinding" bindingConfiguration="ServiceBinding" contract="Service" /> 
     </service> 
    </services> 

    <bindings> 
     <webHttpBinding> 
      <binding name="ServiceBinding" maxBufferPoolSize="1000000" maxReceivedMessageSize="1000000"> 
       <readerQuotas maxDepth="1000000" maxStringContentLength="1000000" 
     maxArrayLength="1000000" maxBytesPerRead="1000000" maxNameTableCharCount="1000000" /> 
      </binding> 
     </webHttpBinding> 
    </bindings> 
</system.serviceModel> 

Comment puis-je le rendre possible Votre serveur peut-il accéder à mon service web même si vous utilisez uniquement domain.com?

+0

Avez-vous essayé de changer le préfixe en 'http: // domain.com'? Qu'est-ce que ça a fait? – Oded

+0

Oui, mais cela ne fonctionne pas pour www.domain.com. Puis-je ajouter un support pour les deux? – MysterM

+0

Pourquoi ne pas en choisir un, et rediriger les utilisateurs (de l'autre) vers celui que vous voulez? –

Répondre

0

Votre serveur dispose-t-il de fonctionnalités IIS 7.5? Jetez un coup d'oeil au module URL Rewrite 2.0 et à sa règle de réécriture de nom d'hôte canonique. pour

Questions connexes