Попытка загрузки метаданных из net.pipe://localhost/abc.svc с использованием WS-Metadata Exchange. Этот URL не поддерживает DISCO

Получил эту ошибку при генерации прокси с помощью svcutil:

"Attempting to download metadata from 'net.pipe://localhost/abc.svc' using WS-Metadata Exchange. This URL does not support DISCO."

Сервис скомпилирован без ошибок и нормально работает с http ранее. Сгенерированный wsdl работает нормально для net.pipe тоже без проблем даже после ошибки при генерации прокси с svcutil.

Чтобы убедиться, что генерируются новые генерируемые файлы, я удалил все старые файлы и затем сгенерировал файлы с помощью svcutil, а затем использовал их. Это дает ту же ошибку, а также генерирует файлы, которые при использовании не создают проблем при использовании сервисов.

Я просто озадачен, почему эта ошибка возникает, когда все работает нормально.

2 ответа

Это не сообщение об ошибке. Я бы сказал, просто ИНФОРМАЦИЯ, даже не ПРЕДУПРЕЖДЕНИЕ...

Я думаю, у вас есть что-то вроде следующего конфига и попробуйте запустить svcutil на net.pipe.

    <service name="Service" ...>
        <host>
          <baseAddresses>
            <add baseAddress="net.pipe://localhost/" />
          </baseAddresses>
        </host>
        <endpoint address="Service"
                  binding="netNamedPipeBinding"
                  contract="IService" />
        <endpoint address="Service/mex"
                  binding="mexNamedPipeBinding"
                  contract="IMetadataExchange" />
   </service>
   ...
   <serviceMetadata httpGetEnabled="False" />

svcutil выдаст сообщение типа "Этот URL не поддерживает DISCO" и все равно успешно сгенерирует файлы

Теперь вы можете изменить serviceMetadata на

    <serviceMetadata httpGetEnabled="True" httpGetUrl="http://localhost:8182/Service/mex" />

и беги к примеру

    svcutil.exe /t:code /l:cpp /ser:Auto http://localhost:8182/Service/mex

Он сгенерирует тот же код клиентского прокси, что и на net.pipe, но теперь со следующим выводом...

    Attempting to download metadata from 'http://localhost:8182/Service/mex' using WS-Metadata Exchange or DISCO.

Pranav,

ваша мекс конечная точка верна. Когда вы используете netNamedPipeBinding или netTcpBinding, вам необходимо выполнить некоторые настройки в службах и IIS.

Направление службы WCF хостинга с помощью netTcpBinding или netNamedPipeBinding в IIS

Другие вопросы по тегам