Я пытаюсь запустить службу собственного хоста, поэтому процесс выглядит так:
- С помощью шаблона WCF VS2017 я создаю библиотеку со службой и контрактом.
Я создаю новый проект WPF, который ссылается на эту библиотеку, чтобы использовать эту службу.В этом приложении WPF будет размещена служба.
Я копирую всю конфигурацию из app.config библиотеки, созданной с помощью шаблона VS2017, в app.config приложения WPF.Просто я изменяю URL, чтобы избежать конфликтов, URL будет Service2 вместо Service1.Это происходит потому, что если я начинаю отладку, Visual Studio запускает службу библиотеки и службу приложения WPF.
Проблема заключается в том, что служба, размещенная в приложении WPF,не начато.Также я попытался выгрузить проект библиотеки, чтобы запустить только проект WPF, чтобы избежать запуска служб, которые я не хочу запускать, но проблема та же, служба не запущена.
app.config это:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<services>
<service name="Servicio.Service1">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:8733/Design_Time_Addresses/Servicio/Service2/" />
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" contract="Servicio.IService1">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Код моего проекта WPF:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
using (_host = new ServiceHost(typeof(Servicio.Service1)))
{
_host.Open();
}
}
private ServiceHost _host;
}
Почему служба не запущена?