Классический ASP в WCF с использованием Service Moniker - PullRequest
2 голосов
/ 18 сентября 2009

Я пытаюсь использовать службу журналов WCF из классического ASP без развертывания оболочки Com. Я нашел способ сделать это здесь . Вот упрощенный скрипт vb.

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")

Это работает на Server 2008 , но завершается ошибкой с этой ошибкой на Server 2003 .

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

Только при запуске через ASP происходит сбой , пример файла VBS на той же машине с использованием того же кода работает нормально.

Я думаю, что это может быть связано с разрешением, но не знаю, с чего начать. У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ - позвольте мне уточнить, что хост WCF является службой Windows, работающей в качестве СЕТЕВОЙ СЕРВИС.

Если это относится к сбою сервера, модератор может переместить его. У меня там тоже есть аккаунт.

1 Ответ

0 голосов
/ 18 сентября 2009

Вы используете WCF с сеткой трубной привязки.

Windows 2003 не поддерживает сетевые каналы.

Обновление:

Чистая труба WCF использует службы активации Windows (WAS), включенные в Windows 2008

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

Сетевые каналы работают на Windows 2003, но не на WCF-сетевых трубах

РЕДАКТИРОВАТЬ

Ваши комментарии верны: когда вы запускаете WCF как службу Windows, а не в IIS, она должна работать в winows 2003.

Сказав это, это должно быть связано с звонком с веб-сайта ASP. Для начала, есть ли ошибки в вашем журнале событий?

...