代码之家  ›  专栏  ›  技术社区  ›  user584018

将asp.net核心web api作为窗口服务托管后,https(https://localhost:5001/api/values)——不可接近

  •  0
  • user584018  · 技术社区  · 5 年前

    我使用默认模板创建了一个全新的asp.net核心web api应用程序 HTTPS

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
    
            app.UseHttpsRedirection();
            app.UseMvc();
        }
    

    enter image description here

    当我以 console 那就申请吧 https 场地( https://localhost:5001/api/values API 后果

    现在,当我将这个web API部署为 Window Service http 网站是可访问的,但是 https https://localhost:5001/api/values )无法访问?原因是什么?谢谢

    1 回复  |  直到 5 年前
        1
  •  1
  •   user584018    5 年前

    创建证书后

    dotnet开发人员证书https-ep“localhost.pfx”-p Password1--信任

    我添加了下面的代码,

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
            // Configure the Url and ports to bind to
            // This overrides calls to UseUrls and the ASPNETCORE_URLS environment variable, but will be 
            // overridden if you call UseIisIntegration() and host behind IIS/IIS Express
            .UseKestrel(options =>
            {
                options.Listen(IPAddress.Loopback, 5000);
                options.Listen(IPAddress.Loopback, 5001, listenOptions =>
                {
                    listenOptions.UseHttps("localhost.pfx", "Password1");
                });
            })
    

    即使在将WebAPI作为窗口服务托管之后,它仍然可以工作。