Я написал службу wcf, все работает нормально, когда я развертываю ее на IIS7 с привязкой http.

Я хочу развернуть то же самое в службах активации процессов Windows (WAS), используя привязку netcp. когда я пытаюсь создать прокси для службы с помощью svcutil я получаю ниже сообщение об ошибке: Ошибка: не удается получить метаданные из net.tcp://localhost/myservice/servi ce.svc Если это служба Windows (R) Communication Foundation, к которой у вас есть доступ ss, убедитесь, что вы включили публикацию метаданных по указанному адресу Эсс. Справку по включению публикации метаданных см. в документации MSDN по адресу на странице http://go.microsoft.com/fwlink/?LinkId=65455. .

URI ошибки обмена метаданными WS: net.tcp://localhost/servicemodelsamples/service.svc Метаданные содержат ссылку, которую невозможно разрешить: «net.tcp://localhost/servicemodelsamples/service.svc».

Вот web.config:

<system.serviceModel>
    <services>
      <service name="MyProj.Myservice"behaviorConfiguration="CalculatorServiceBehavior">
        <!--This endpoint is exposed at the base address provided by host: net.tcp://localhost/servicemodelsamples/service.svc -->
        <endpoint binding="netTcpBinding" bindingConfiguration="PortSharingBinding"contract="MyProj.ICalculator"  />
        <!--the mex endpoint is explosed at net.tcp://localhost/servicemodelsamples/service.svc/mex -->
        <endpoint address="mex"binding="mexTcpBinding"contract="IMetadataExchange"  />
      </service>       
    </services>
    <bindings>
      <netTcpBinding>
        <binding name="PortSharingBinding" portSharingEnabled="true">
          <security mode="None"  />
        </binding>             
      </netTcpBinding>
    </bindings>
    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata  />
          <serviceDebug includeExceptionDetailInFaults="False"  />
        </behavior>                   
      </serviceBehaviors>
    </behaviors>

Благодарность,

1
r9727 26 Мар 2011 в 22:07
Похоже, вы используете localhost в качестве своего служебного адреса, к которому вы привязываетесь. Не могли бы вы вместо этого попробовать использовать имя компьютера или IP-адрес? Это имеет какое-то значение??
 – 
marc_s
27 Мар 2011 в 01:11

1 ответ

На .net 4 проверьте, использует ли служба «Адаптер прослушивателя Net.Tcp» версию .net 4 для SMSvcHost.exe (должно быть ...\v4.0.30319\SMSvcHost.exe). Если не восстановить установку .net 4

0
xhafan 13 Сен 2011 в 03:08