gpt4 book ai didi

c# - 为 prod 和 dev 指定 asp.net core 1.0 WebAPI.exe 应该在 program.cs 中使用的 url(端口)

转载 作者:行者123 更新时间:2023-11-30 13:44:33 24 4
gpt4 key购买 nike

我在我的 asp.net core 1.0 web api (.NET Framework) program.cs 中执行以下操作以指定我希望我的 web api exe 在哪个端口中运行仅用于开发目的:

public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls(new string[1] { "http://*:12012" })
.Build();

host.Run();
}

但是,当我发布到生产环境时,此行会导致 WebAPI 出错,因为我希望 exe 使用生产环境 web-api url,即 productionWeb/api/values 而不是 localhost:12012/values

无论如何,我是否可以两全其美,能够指定我希望它在端口 12012 上运行用于开发目的和生产 url 用于生产目的?

我目前的解决方案是在发布之前注释掉该行。

最佳答案

当使用 IIS 时,您将覆盖 IIS(AspNet 核心模块)告诉应用程序通过调用 .UseUrls() 收听的 url。在 .UseIISIntegration() 之后.您应该更改这两个调用的顺序,以便 .UseIISIntegration().UseUrl()之后. .UseIISIntegration()如果您未使用 IIS 运行,则不会触及您设置的 url,因此在开发过程中,您的应用程序仍将监听端口 12012。使用 IIS 运行时 .UseIISIntegration()将覆盖 url 以监听 IIS 告诉它监听的端口。我写了一个post on running Asp.NET Core apps with IIS and Azure Websites这解释了事情是如何工作的,包括这种细微差别。

关于c# - 为 prod 和 dev 指定 asp.net core 1.0 WebAPI.exe 应该在 program.cs 中使用的 url(端口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com