Bla*_*ell 3 c# asp.net asp.net-web-api asp.net-core asp.net-core-1.0
我在我的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();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我发布到生产时,这行会导致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告诉它监听.我写了一篇关于使用IIS和Azure网站运行Asp.NET核心应用程序的文章,该文章解释了包括这种细微差别在内的工作原理.
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |