Как разместить службу WCF в управляемой службе Windows?
У меня есть 3 проекта в моем решении.
Test Client => для добавления ссылки и доступа через tcp ipWcfServiceLib February1 => для выполнения моих методовWindowsService1 => для установки и запуска в качестве службы Windows (учетная запись: сетевая служба, тип запуска: автоматический)Я использовал все те же коды на примере MSDN
http://msdn.microsoft.com/en-us/library/ff649818.aspx
Я использую службу wcf, которая имеет 2 метода. Я хочу использовать эту службу wcf в службе управляемых окон. Я добавил службу windows в свое решение и установил ссылки.
Я использую этот адрес ссылки на моем wcf - app.config:
net.tcp://localhost:2023/Service1
ТЕПЕРЬ ПРОБЛЕМА
Мне удалось добавить ссылку на мой тестовый клиентский проект, используя
net.tcp://localhost:2023/Service1
:
Но этот ссылочный адрес не будет использоваться при установке как служба Windows !!! Когда я устанавливаю его как службу Windows, я не могу получить доступ к этому адресу, и я получил эту ошибку:No connection could be made because the target machine actively refused it
WcfServiceLib February. App.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<services>
<service name="WcfServiceLibrary1.Service1">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="" contract="WcfServiceLibrary1.IService1">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:2023/Service1"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Мой WindowsService:
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(Service1));
myServiceHost.Open();
}
Все работает хорошо, когда я запускаю на хосте сервиса visualstudio: