2009-09-18 5 views
2

J'essaie de consommer un service de journalisation WCF à partir de ASP classique sans déployer un wrapper Com. J'ai trouvé une méthode de le faire here. Voici le script vb, simplifié.ASP classique à WCF utilisant le Service Moniker

Dim addr 
addr = "service:mexAddress=""net.pipe://localhost/Services/Logging/LoggingManager/Mex""," _ 
& "address=""net.pipe://localhost/Services/Logging/LoggingManager/classic/""," _ 
& "contract=""ILoggingManagerClassic"", contractNamespace=""http://Services.Logging.Classic/""," _ 
& "binding=""NetNamedPipeBinding_ILoggingManagerClassic"", bindingNamespace=""http://Services.Logging.Classic/""" 

set objErrorLogger = GetObject(addr) 
Dim strError : strError = objErrorLogger.LogError("blahblah") 

Ce fonctionne sur le serveur 2008, mais échoue avec cette erreur sur Server 2003.

Failed to do mex retrieval:Metadata contains a reference that cannot be resolved: net.pipe://localhost/Services/Logging/LoggingManager/Mex.. 

uniquement lors de l'exécution par ASP n'échouer, un fichier VBS échantillon sur la même machine en utilisant le même code fonctionne très bien. Je pense que cela peut être lié à la permission, mais je ne sais pas par où commencer. Quelqu'un a des idées?

EDIT - permettez-moi de préciser que l'hôte WCF est un service Windows s'exécutant en tant que SERVICE RÉSEAU.

Si cette erreur survient sur un serveur, un modérateur peut le déplacer. J'ai aussi un compte là-bas.

+0

Les gars sur serverfault.com sont bons dans ce domaine. –

Répondre

0

Vous utilisez WCF avec liaison de tuyauterie nette.

Windows 2003 ne prend pas en charge les tubes réseau.

Mise à jour:

tuyau net WCF utilise des fenêtres d'activation Serices (WAS) qui est inclus dans Windows 2008

http://msdn.microsoft.com/en-us/magazine/cc163357.aspx

tubes Net fonctionne sur Windows 2003, mais les tuyaux nets non WCF

EDIT

Vos commentaires sont justes que lorsque vous exécutez le WCF en tant que service Windows et non dans IIS, il devrait fonctionner sur winows 2003.

Cela dit, il doit être lié à l'appel provenant du site Web ASP. Un point de départ est, y at-il des erreurs dans votre journal des événements.

+0

Si cela est vrai, comment le même code fonctionne-t-il dans un fichier vbscript autonome? Il utilise également des tuyaux de réseau. – Jab

+0

J'ai vu votre mise à jour, mais je ne vois pas comment un fichier vbscript a été exécuté depuis la machine en utilisant le même service WCF, mais cela ne fonctionne pas depuis le site Web. Cela impliquerait que les tuyaux de réseau fonctionnent comme prévu. Je pense que WAS ne s'applique qu'à ceux qui hébergent le service WCF via IIS, ce que je ne suis pas. – Jab

+0

Il n'y a pas d'erreur dans le journal des événements. La seule erreur est l'erreur signalée sur le site, elle agit comme si elle ne pouvait pas "voir" le service à cette URL net.pipe. – Jab

Questions connexes