如何在 IIS 上托管 .net Core 3.0 Web Api?

How to Host .net Core 3.0 Web Api on IIS?

我正在尝试 运行 .net core web Api 通过在 IIS 上托管 Remote PC。我可以 运行 在本地申请。 Api 在通过 PostMan 运行 时工作正常。

我也可以 运行 使用 IP 地址的应用程序

UseUrls("http://localhost:5000", "http://localhost:21868","http://*.*.*.*:5000")

in program.cs(使用 kestral 的自托管应用程序)。 在 applicationhost.config

中完成设置
<binding protocol="http" bindingInformation="*:21268:localhost" />

我尝试 运行 API 通过在 IIS 上托管它而不在远程 PC 上进行调试,但我无法做到这一点?

编辑:

我在尝试托管时遇到错误-

Unable to connect to web server iisexpressandinvalid URl: the hostname could not be parsed.

缺少的东西是 - 在设置 Visual studio 2017/2019 时启用 开发时间 IIS 支持,因为 运行 [需要本地 IIS 模块] ASP.NET IIS 上的核心应用程序。

之后,我可以在项目属性中将启动设置为 IIS。下面 Link 我发现在 IIS 上托管核心应用程序很有帮助。

https://devblogs.microsoft.com/aspnet/development-time-iis-support-for-asp-net-core-applications/

编辑您的 Startup.cs 文件

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    if (env.IsProduction() || env.IsStaging())
    {
        app.UseExceptionHandler("/Error/index.html");
    }

    // Enable middleware to serve generated Swagger as a JSON endpoint.
    app.UseSwagger(c =>
    {
        c.RouteTemplate = "swagger/{documentName}/swagger.json";
    });

    // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
    // specifying the Swagger JSON endpoint.
    app.UseSwaggerUI(c =>
    {
        c.RoutePrefix = "swagger";
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1");

        // custom CSS
        c.InjectStylesheet("/swagger-ui/custom.css");
    });

    app.Use(async (ctx, next) =>
    {
        await next();
        if (ctx.Response.StatusCode == 204)
        {
            ctx.Response.ContentLength = 0;
        }
    });


    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseAuthorization();
    app.UseAuthentication();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });

    app.UseCors();

}   

https://youtu.be/6HiaXCAlRr0