.NET Core 2.1 +身份作为UI + Windows服务 - 如何设置端口?

时间:2018-05-29 05:01:52

标签: .net-core asp.net-core-2.0

背景:通过一些游戏,我设法将.NET Core 2.1 + Identity设置为UI + Windows服务(关注this文章),如下所示:

  • 安装.NET Core 2.1 Preview 2 SDK
  • 安装Visual Studio 2017预览
  • dotnet add package Microsoft.AspNetCore.Hosting.WindowsServices --version 2.1.0-rc1-final

  • 新项目 - > ' .NET Core' - > ' ASP.NET核心Web应用程序' - >确定

  • 选择ASP.NET Core 2.1(在顶部) - >网络应用程序
    取消选择“配置HTTPS” '更改身份验证' - > '个人用户帐户' - >确定

  • 在Program.cs中:
    添加using Microsoft.AspNetCore.Hosting.WindowsServices;

    替换
     CreateWebHostBuilder(args).Build().Run();
    用:

    if (Debugger.IsAttached || args.Contains("--debug"))
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    else
    {
        CreateWebHostBuilder(args).Build().RunAsService();
    }
    
  • Startup.cs中的

  • 评论app.UseHttpsRedirection();

  • 在launchSettings.json中:
    替换:

    "MyProj": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }

    使用:

    "MyProj": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:44322;http://localhost:44322", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Production" } }

(我认为这就是全部)

然后我重建解决方案并在项目目录中执行:

dotnet publish -c Release --self-contained -r win-x64

我得到MyProj\bin\Release\netcoreapp2.1\win-x64\MyProj.exe我作为服务安装并运行它


在Chrome中我然后:

http://localhost:5000/ - 作品:)
http://localhost:44322/ - 不起作用:(


这是来自launchSettings.json的端口设置未应用

如何在http 44322上收听服务?

谢谢!

1 个答案:

答案 0 :(得分:2)

launchSettings.json仅用于dotnet run或Visual Studio解释的开发设置。

在制作中,您可以设置ASPNETCORE_URLS环境变量或使用MyProj.exe --urls "http://localhost:5020;https://localhost:5021"启动。

或者,您也可以在Web主机构建器上调用.UseUrls("…")

WebHost.CreateDefaultBuilder(args)
            .UseUrls("…")
            .UseStartup<Startup>()