作为Windows服务运行的ASP.NET核心获得500内部服务器错误

时间:2017-04-14 15:31:10

标签: c# asp.net windows service

我试图将ASP.NET Core应用程序实现为Windows服务。我基本上遵循了here概述的步骤。我发布了应用程序,然后创建指向发布位置中的可执行文件的服务。该服务已成功创建。我开始服务,这也很成功。但是,当我尝试将浏览器导航到我设置的URL时,我得到了一个" 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。谁能指出我正确的方向?需要更多信息吗?

谢谢! 丹尼斯

1 个答案:

答案 0 :(得分:0)

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

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

现在一切似乎都有用了!