Я искал в Интернете, но я не могу найти решение моей проблемы.Проблемы с привязкой NetTCP и самостоятельным хостингом
Я сам принимаю мое обслуживание на XP, используя nettcpbinding. Файл конфигурации выглядит следующим образом:
<system.serviceModel>
<diagnostics>
<messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
<services>
<service behaviorConfiguration="behaviorconfig"
name="myservice">
<host>
<baseAddresses>
<add baseAddress="net.tcp://10.1.3.186:8001/myService" />
</baseAddresses>
</host>
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="BindingConfiguration"
contract="xxx.ISomeService" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="BindingConfiguration" receiveTimeout="10:00:00"
sendTimeout="10:00:00" maxBufferSize="65536" maxReceivedMessageSize="65536"
transferMode="Streamed">
<readerQuotas maxDepth="65536" maxStringContentLength="65536"
maxArrayLength="65536" maxBytesPerRead="97108864" maxNameTableCharCount="65536" />
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="behaviorconfig">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
И код selfhost является
Uri tcpUrl = new Uri("net.tcp://10.1.3.186:8001/myService");
//Create ServiceHost
ServiceHost host
= new ServiceHost(typeof(xxx.SomeService), tcpUrl);
//Add a service endpoint
host.AddServiceEndpoint(typeof(xxx.ISomeService)
, new NetTcpBinding(), "");
//Enable metadata exchange
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = false;
host.Description.Behaviors.Add(smb);
//Start the Service
host.Open();
Когда я пытаюсь добавить ссылку на службу, я получаю сообщение об ошибке об ошибке: Не удается получить метаданные из net.tcp: // 10.1.3.186:8001/myService/mex
Что здесь не так?
Ваш служебный элемент имеет атрибут имени как myservice, где он должен был быть xxx.myservice (xxx - это пространство имен) – Rajesh