[英]Get Current URL as soon as available program.cs / startup.cs in ASP.NET Core
[英]Specifying the url (port) that a asp.net core 1.0 WebAPI.exe should use in program.cs for both prod and dev
我在我的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要覆盖URL中的IIS(ASPNET核心模块)告诉应用程序通过调用听.UseUrls()
后.UseIISIntegration()
您应该更改这两个调用的顺序,以便.UseIISIntegration()
在.UseUrl()
。 如果你没有运行IIS,则.UseIISIntegration()
将不会触及你设置的网址,因此在开发中你的应用程序仍然会在端口12012上侦听。当运行IIS时.UseIISIntegration()
会覆盖url以侦听端口IIS告诉它听。 我写了一篇关于使用IIS和Azure网站运行Asp.NET核心应用程序的文章,该文章解释了包括这种细微差别在内的工作原理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.