2013-02-26 4 views
1

я иду через пошаговом «Как использовать NetTcpBinding с проверкой подлинности Windows и транспортной безопасности в WCF вызова из Windows Forms»Реферирование услугу ФОС Tcp из того же раствора

http://msdn.microsoft.com/en-us/library/ff647180.aspx

Когда я получаю на «Шаг 7: Создать тестовое клиентское приложение» и подшаговое 5: «5. В диалоговом окне« Добавить ссылку на службу »установите для URI службы: net.tcp: // localhost: 8523/WCFTestService, а затем нажмите« Перейти »

Я получаю «Префикс URI не распознается. Метаданные содержат ссылку, которая не может быть решена».

Это как если бы «Добавить ссылку на службу» не распознает привязку «net.tcp».

Я нахожусь в Windows 7 x64, используя Visual Studio 2012, и мой проект нацелен на x86 и Framework 4.5.

Я нашел эту нить

An error in the MSDN walk-through - "How to: Host WCF in a Windows Service Using TCP"

Но у них не было проблемой, когда клиент был в том же растворе. Я.

Service Config:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="Publisher.MyServiceBehavior"> 
       <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service name="POC_WcfTcpSubscribePublishService.Publisher"> 
      <endpoint address="" binding="netTcpBinding" bindingConfiguration="" 
       name="NetTcpBindingEndpoint" contract="POC_WcfTcpSubscribePublishService.IPublisher"> 
       <identity> 
        <dns value="localhost" /> 
       </identity> 
      </endpoint> 
      <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" 
       name="MexTcpBindingEndpoint" contract="IMetadataExchange" /> 
      <host> 
       <baseAddresses> 
        <add baseAddress="net.tcp://localhost:8523/WcfTcpSubscribePublish" /> 
       </baseAddresses> 
      </host> 
     </service> 
    </services> 
</system.serviceModel> 

любые указатели приветствуются.

+1

Работает ли служба, к которой вы пытаетесь добавить ссылку? Полагаю, это требование - вы можете запустить проект службы отдельно от контекстного меню. –

+0

Извините за поздний ответ. Это была проблема. Я думал, что я выполняю службу, но когда я начал ее, она немедленно прекратила свою работу по другой причине. Теперь я могу добавить ссылку на службу для проекта клиента. Забавно, но открытие все еще не работает. – dtaylor

+0

Если вы добавите ответ в качестве ответа, я помечаю его как ответ. – dtaylor

ответ

1

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

Вы можете запустить проект службы отдельно от контекстного меню в обозревателе решений.

1

У вас есть поведение службы: Publisher.MyServiceBehavior

Но вы не применяете, что поведение службы к службе. После того, как имя службы = «...» это сделать:

behaviorConfiguration = „Publisher.MyServiceBehavior“

+0

Тревор, спасибо за ответ. Извините за задержку, меня тянут во многих направлениях. Это был хороший улов, но не решил мою проблему. Поскольку я ответил на «500 - Internal Server Error» выше, проблема заключалась в том, что моя служба не будет работать. Теперь, когда я могу запустить службу, я могу ссылаться на нее в клиенте. – dtaylor