У меня есть небольшое консольное приложение, содержащее веб-сервер, написанный на c #.При попытке преобразовать его в службу Windows появляется сообщение об ошибке 1053, и при просмотре журнала ошибок отображается:
Application: YCSWebServerService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.DirectoryNotFoundException
Stack:
at HttpServer.Resources.FileResources.Add(System.String, System.String)
at HttpServer.Resources.FileResources..ctor(System.String, System.String)
at YCSWebServer.WebServer..ctor(SerialCommunication.SerialCommunicationWrapper, YCSInterfaces.IBuilder, SerialCommunication.SerialCommunication)
at YCSConfiguration.Builder..ctor()
at YCSWebServerService.YCSWebServerService..ctor()
at YCSWebServerService.Program.Main()
, что связано со следующим кодом:
server = new Server();
// Where to find the html page to render
server.Resources.Add(new FileResources("/", ".\\Webpages"));
server.Add(new FileModule(server.Resources, false));
//Create a http listener
HttpListener listener = HttpListener.Create(IPAddress.Any, 8888);
// use one http listener.
server.Add(listener);
server.RequestReceived += ServerRequestReceived;
// start server, can have max 10 pending accepts.
server.Start(10);
Я пытаюсь установить относительный путь к месту расположения моих html-файлов, и я пытаюсь дать ему фиксированный путь fx: c: \ webpages, но безуспешно.Я всегда получаю одну и ту же ошибку.Я установил какое-то разрешение / безопасность для того, чтобы мой сервис получил доступ к этой папке?Веб-сервер основан на проекте codeplex: http://webserver.codeplex.com/
Мои методы запуска и остановки:
public partial class YCSWebServerService : ServiceBase
{
private Builder _builder;
public YCSWebServerService()
{
InitializeComponent();
_builder = new Builder();
}
protected override void OnStart(string[] args)
{
_builder.Start();
}
protected override void OnStop()
{
_builder.Stop();
}
}