【WebAPI No.2】如何WebAPI发布

介绍:

Asp.Net Core在Windows上可以采用两种运行方式。一种是自托管运行,另一种是发布到IIS托管运行。

自托管

首先有一个完好的.Net Core WebAPI测试项目,然后进入根目录运行   dotnet publish  ,来进行编译:

【WebAPI No.2】如何WebAPI发布

然后在进入dll目录,也就是程序集目录:运行当前项目的主程序dll: dotnet  xxx.dll

【WebAPI No.2】如何WebAPI发布

出现上面情况就是完成了,发布在了5000端口;

验证看一下:

【WebAPI No.2】如何WebAPI发布

 修改默认端口:

.NET Core WebAP默认的端口号是5000,但是我们可以通过配置来修改端口号。

第一步:创建hosting.json文件:

{
"server.urls": "http://*:8001;http://*:8002;http://*:8003"
}

第二部读取,并注册:

     public static void Main(string[] args)
{
//BuildWebHost(args).Run();
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.Build(); var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build(); host.Run();
}

还有一个就是如果出现一些与:CoreApi.deps.json相关的错误,解决办法:

【WebAPI No.2】如何WebAPI发布

找到这个文件然后在里面添加: <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
</Project>

注:如果只是修改一个端口不做多端口发布只需要这样即可:

  public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://localhost:8002")
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();

还有一种可以多次运行命令行来实现不同的端口:

首先Program.cs:

  public static IWebHost BuildWebHost(string[] args)
{ var config = new ConfigurationBuilder().AddCommandLine(args)
.Build();
string ip = config["ip"];
string port= config["port"];
return WebHost.CreateDefaultBuilder(args)
.UseUrls($"http://{ip}:{port}")
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build(); }

然后在命令行输入:

dotnet CoreApi.dll  --ip 127.0.0.1 --port 8001

【WebAPI No.2】如何WebAPI发布

传送门

WebApi系列文章目录介绍

上一篇:ubuntu12.4上安装minigui3.0.12


下一篇:基于Vue2全家桶的移动端AppDEMO实现