2008-09-12 5 views
4

J'ai un service WCF appelé par le client JavaScript. L'appel échoue avec un service est une erreur JavaScript null. La trace d'assistance WebDevelopment montre que les appels pour charger le fichier de support jsdebug aboutissent à une erreur 404 (fichier introuvable).Le fichier de prise en charge du service WCF jsdebug ne parvient pas à se charger

IIS ou Redémarrer effacer les fichiers Temp de ASP.Net ou la mise en lot = « false » sur l'étiquette de compilation dans web.config ne résout pas le problème

A partir du navigateur

https://Myserver/MyApp/Services/MyService.svc affiche le numéro métadonnées

cependant

https://Myserver/MyApp/Services/MyService.svc/jsdebug résultats dans un 404.

Le problème semble être avec le protocole https. Avec http/jsdebug télécharge le fichier JS de support.

Des idées?

TIA

Répondre

11

Compris!

Voici la section de configuration des services de web.config

Look à l'attribut bindingConfiguration sur le point de terminaison. La valeur "webBinding" pointe vers la liaison name = "webBinding" dans les liaisons et c'est ce qui indique au service d'utiliser la sécurité au niveau du transport HTTPS. Dans mon cas, la valeur de l'attribut était vide, provoquant l'échec de la requête de service Web vers le fichier/js ou/jsdebug via HTTPS et une erreur 404.

<services> 
     <service name="MyService"> 
     <endpoint address="" behaviorConfiguration="MyServiceAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="Services.MyService" /> 
     </service> 
    </services> 
    <bindings> 
     <webHttpBinding> 
     <binding name="webBinding"> 
      <security mode="Transport"> 
      </security> 
     </binding> 
     </webHttpBinding> 
    </bindings> 

Notez que l'attribut bindingConfiguration doit être vide ("") si le service est accessible via http au lieu de https (lors du test sur la machine locale sans certs)

Hope this helps quelqu'un.

0

Si vous obtenez toujours la même erreur après tout votre travail possible. Ajoutez simplement un "service WCF activé par AJAX".

+1

donnez un code relatif avec votre explication –

+0

Comment exactement "ajouter un service WCF AJAX activé"? – garryp

0

Pour moi, la question était la suivante; nous avons ajouté MVC à une solution avec routage. Nos services WCF n'étaient pas ignorés. J'ai résolu cela en ajoutant la règle suivante (où "WCF" est le dossier dans lequel nous gardons nos services).

routes.IgnoreRoute("WCF/{*pathInfo}"); 

Espérons que quelqu'un sauve quelques heures.

Questions connexes