Я создаю службу WCF, которая должна быть размещена в службе Windows. Я создал консольное приложение следующим образом
Я зашел в консоль управления (services.msc) и запустил службу. Но я получил следующую ошибку
Служба LijosWindowsService на
Локальный компьютер запустился, а затем
остановился. Некоторые службы останавливаются
автоматически, если у них нет работы
сделать, например, журналы производительности
и оповещения
Я пошел в программу просмотра событий и получил следующее
Служба не может быть запущена.
System.InvalidOperationException:
Сервис "Lijo.Samples.WeatherService"
имеет нулевое применение
(не инфраструктурные) конечные точки. это
может быть потому, что нет файла конфигурации
был найден для вашего приложения, или
потому что не соответствует элементу службы
название службы можно найти в
файл конфигурации, или потому что нет
конечные точки были определены в службе
элемент.
Не могли бы вы дать мне знать, что здесь за отсутствующая ссылка?
Имя файла [LijosService.cs]
using System.ComponentModel;
using System.ServiceModel;
using System.ServiceProcess;
using System.Configuration;
using System.Configuration.Install;
namespace Lijo.Samples
{
[ServiceContract(Namespace = "http://Lijo.Samples")]
public interface IWeather
{
[OperationContract]
double Add(double n1, double n2);
}
public class WeatherService : IWeather
{
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
}
public class MyWindowsService : ServiceBase
{
public ServiceHost serviceHost = null;
public MyWindowsService()
{
// Windows Service name
ServiceName = "LijosWindowsService";
}
public static void Main()
{
ServiceBase.Run(new MyWindowsService());
}
protected override void OnStart(string[] args)
{
if (serviceHost != null)
{
serviceHost.Close();
}
serviceHost = new ServiceHost(typeof(WeatherService));
serviceHost.Open();
}
protected override void OnStop()
{
if (serviceHost != null)
{
serviceHost.Close();
serviceHost = null;
}
}
}
// ProjectInstaller
[RunInstaller(true)]
public class ProjectInstaller : Installer
{
private ServiceProcessInstaller myProcess;
private ServiceInstaller myService;
public ProjectInstaller()
{
myProcess = new ServiceProcessInstaller();
myProcess.Account = ServiceAccount.LocalSystem;
myService = new ServiceInstaller();
myService.ServiceName = "LijosWindowsService";
Installers.Add(myProcess);
Installers.Add(myService);
}
}
}
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="Lijo.Samples.WeatherService"
behaviorConfiguration="WeatherServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/LijosService"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
contract="Lijo.Samples.IWeather" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WeatherServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Спасибо
Lijo