【发布时间】:2016-06-16 14:44:10
【问题描述】:
我在我的 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 使用生产网络 API url,即 productionWeb/api/values 而不是 localhost:12012/values
我是否可以两全其美地指定我希望它在端口 12012 上运行以用于开发目的和生产 url 用于生产目的?
我目前的解决方案是在发布前注释掉该行。
【问题讨论】:
-
您要发布到哪里?天蓝色?你自己的服务器?
-
您是否在生产环境中的 IIS 后面运行它? UseUrls 应该在 UseIISIntegration 之前,否则你会覆盖 IIS 设置 - 我在这里描述它:blog.3d-logic.com/2016/06/08/…。请注意,建议在 IIS 或 nginx 等代理后面运行 ASP.NET Core 应用程序
-
是的,我正在发布到实际的 IIS。所以你是说如果我改变顺序我应该很好,对吧?
-
是的,更改顺序应该可以解决此问题。
标签: c# asp.net asp.net-web-api asp.net-core asp.net-core-1.0