Вызов сервисной функции WCF со сценарием vb, имеющим моникер, выдает ошибку как: Не удалось выполнить поиск mex - PullRequest
0 голосов
/ 13 февраля 2012

У меня запущена служба, к которой я обращаюсь из клиентского приложения с помощью Vb Script.

Код в клиентском приложении.is System.Diagnostics.Process.Start (@ "C: \ Users \ ade1kor \ Desktop \ test.vbs");

test.vbs имеет вид: ...

Dim addr 

addr = "service:mexAddress=""net.tcp://localhost:8523/Service1/mex"","
addr = addr + "address=""net.tcp://localhost:8523/Service1"","
addr = addr + "contract=""IService1"", contractNamespace=""WcfServiceLibrary1"","
addr = addr + "binding=""NetTcpBinding_IService1"", bindingNamespace=""http://tempuri.org/"""

Dim service
Set service = GetObject(addr)

MsgBox (service.GetData(3))

.....

Но когда я запускаю клиент, появляется диалоговое окно с сообщением

"Error:Failed to do mex retrieval:Metadata contains a reference that cannot be resolved: 'net.tcp://localhost:8523//Service1//mex'.. Code: 800401E4"

Я не знаю, что делать ... если у кого-то естьЛюбая идея, пожалуйста, поделитесь

1 Ответ

0 голосов
/ 13 февраля 2012

Хммм, я не знал об этой функции раньше.Однако кажется, что вы не ссылаетесь на COM-класс, как показано в этой статье MSDN с примером кода .Значение contractType отсутствует в вашем коде.Он должен выглядеть примерно так:

contractType={9213C6D2-5A6F-3D26-839B-3BA9B82228D3}

, где GUID является идентификатором COM от регистрации клиентской сборки .NET с поддержкой COMInterop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...