2017-04-14 82 views
0

我试图将ASP.NET Core应用程序实现为Windows服务。我基本上遵循here概述的步骤。我发布应用程序,然后在发布位置创建指向可执行文件的服务。该服务已成功创建。我开始这项服务,这也是成功的。但是,当我尝试将浏览器导航到设置的URL时,出现“500 - 内部服务器错误”。我对这个过程很陌生,我不知道如何跟踪这个过程。这是我如何设置我的切入点:作为Windows服务运行的ASP.NET Core获取500内部服务器错误

public static void Main(string[] args) 
    { 
     var isDebug = Debugger.IsAttached || args.Contains("--debug"); 
     string runPath = isDebug ? 
      Directory.GetCurrentDirectory() : 
      Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); 

     var host = new WebHostBuilder() 
      .UseKestrel() 
      .UseContentRoot(runPath) 
      .UseWebRoot(Path.Combine(runPath, "wwwroot")) 
      .UseUrls(new string[] { "http://myserver:9191" }) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .Build(); 

     if (isDebug) 
     { 
      host.Run(); 
     } 
     else 
     { 
      host.RunAsService(); 
     } 
    } 

仅供参考,我一直有和没有UseWebRoot线试了一下,我已经试过UseWebRoot既相对和绝对路径。任何人都可以将我指向正确的方向吗?需要更多信息?

谢谢! Dennis

+0

结帐此主题https://github.com/aspnet/Home/issues/1386 –

+0

如果500错误,请参阅[如何使用ASP.NET Core显示错误]( http://stackoverflow.com/questions/24563493/how-to-display-errors-with-asp-net-core) –

+0

谢谢Alex!错误似乎是“视图”索引“找不到”。所以它没有找到那个内容。我查看了我的发布位置,果然,视图文件不在任何位置。我可能会错过某种设置或配置来获取我的视图文件发布(或复制到wwwroot也许)? – Dennis

回答

0

感谢您的帮助,评论者!原来我没有将视图结构添加到我的project.json中的publishOptions中。该部分现在看起来像这样:

"publishOptions": { 
"include": [ 
    "wwwroot", 
    "web.config", 
    "**/*.cshtml", 
    "appsettings.json" 
]} 

一切似乎现在工作!