使用VS开发完代码之后,可以本地发布好,直接上传到centos或其它linux系统,就可以直接访问ASP.NET Core代码了,在1.1的版本中,已经没有了Project.json这个文件了,而是使用.csproj文件。不过我们本地发布好测试好之后,上传我们本地发布的版本,是不用管这两个文件的,除非需要到服务器上去还原包。本地生成Centos包,命令如下:
dotnet publish -f netcoreapp1.1 --runtime centos.7-x64
这里centos.7-x64可以参考:https://docs.microsoft.com/zh-cn/dotnet/articles/core/rid-catalog,有其它系统对应的写法,然后,使用WinScp或其它工具上传到Centos中去,定位到发布后的目录 ,运行命令(&表示在后台运行,如果不需要可以不加):
dotnet yourapplication.dll &
看能否运行成功,成功的话,会提示
Now listening on :http://127.0.0.1:81
而这里的81端口是我在Program.cs中添加的代码,添加后如下:
var host = new WebHostBuilder()
.UseUrls("http://127.0.0.1:81")
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();
host.Run();Centos要安装.net core的运行环境,这个直接用微软官方的指导,链接:https://www.microsoft.com/net/core#linuxcentos再配合Nginx,当然需要在Nginx配置,如下:
server
{
listen 80;
server_name www.52jiagou.com;
index index.html index.htm default.htm default.html;
root /www/wwwroot/www.52jiagou.com;
#error_page 404/404.html;
error_page 404 /404.html;
error_page 502 /502.html;
#include enable-php-54.conf;
#include /www/server/panel/vhost/rewrite/www.52jiagou.com.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
access_log off;
}
location / {
proxy_pass http://127.0.0.1:81/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /www/wwwlogs/www.52jiagou.com.log;
}