Я пытаюсь создать клиентские файлы WCF, используя svcutil.exe.Я запускаю мое приложение wpf, на котором размещена моя библиотека сервисов wcf.Я получаю следующую ошибку при запуске svcutil из командной строки Visual Studio 2010:
URI ошибки обмена метаданными WS: net.tcp: // localhost: 50100 / duplex Метаданные содержат ссылку, которая не может быть разрешена: 'net.tcp: // localhost: 50100 / duplex '.
Может кто-нибудь объяснить, что не так с моим файлом конфигурации, и как я могу успешно сгенерировать файлы клиента, используя svcutil.exe?
Здесьмоя команда svcutil (я, конечно, запускаю эту команду после запуска службы):
c: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC> svcutil.exe net.tcp: // localhost:50100 / duplex / d: c: \ temp
Вот мой app.config для приложения wpf, на котором размещена библиотека службы wcf:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="baseAddress" value="net.tcp://localhost:50100/duplex"/>
</appSettings>
<system.serviceModel>
<!--<bindings />-->
<client />
<services>
<service name="TrackRejectCommunication.RejectService"
behaviorConfiguration="RejectServiceBehavior">
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="DuplexNetTcpBinding_IRejectService"
name="netTcp"
contract="TrackRejectCommunication.IRejectService" />
<endpoint name="NetTcpMetadataPoint"
address="mexTcp"
binding="mexTcpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="DuplexNetTcpBinding_IRejectService"
sendTimeout="00:00:10"
portSharingEnabled="false">
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="RejectServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:50103/Metadata/Duplex" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0"
sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Я получаю базовый адрес через менеджер конфигурации вмое приложение wpf.Я использую следующий код для запуска службы в моем приложении wpf:
RejectService rejectService = new RejectService();
//start the reject service.
HostStartup.StartService(rejectService);
Код StartService:
Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);
//Instantiate new ServiceHost with the singleton instance being passed in
myServiceHost = new ServiceHost(instance, baseAddress);
//Open myServiceHost
myServiceHost.Open();