1,先安装dotnet,根据下面的链接进行下载
https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0
2,安装dotnet
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.410-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
上面的链接只能在本终端里执行,换个终端不行,修改环境变量,使其在每个终端都能使用,在/etc/profile末尾添加下面两行
export PATH=$PATH:$HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
然后运行下面命令,使其环境变量有效
source /etc/profile
在终端运行,查看一下
dotnet
3,创建web项目
dotnet new webapp -o aspnetcoreapp
cd aspnetcoreapp
dotnet watch run
命令行界面指示应用已启动后,浏览至 https://localhost:{port},其中 {port} 是使用的随机端口。
4,由于asp.net core 会强制使用https,需要证书,否则会报下面错误
System.InvalidOperationException:“Unable to configure HTTPS endpoint.异常处理
运行下面的代码
dotnet dev-certs https
sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt --format PEM
sudo update-ca-certificates
这样网站就可以运行了,但是会提示证书不安全。
继续运行以下命令信任证书。
dotnet dev certs https--trust
清理开发人员证书的命令是:
dotnet dev-certs https --clean
详细请看文档:
asp.net core 文档
5,打包
在开发环境上运行
dotnet publish --configuration Release
打好的包在项目的bin/Release/net6.0/publish项目里
运行项目
dotnet aspnetcoreapp.dll &
&此符号是为了让后台运行,关了终端,进程仍然存在,如果想杀死,运行以下命令
ps -ef | grep dotnet
kill -9 进程号
6,配置nginx
server
{
listen 80;
server_name www.net.com net.com;
location / {
proxy_pass https://localhost:5001;
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_pass https://localhost:5001;是为了反向代理服务器Kestrel,Kestrel 是一个跨平台的适用于 Kestrel。 Kestrel 是包含在 ASP.NET Core 项目模板中的 Web 服务器,默认处于启用状态。
https://localhost:5001就是启用dotnet aspnetcoreapp.dll时,出现
7,配置完毕之后,重启nginx
sudo nginx -s reload
浏览器进行访问
www.net.com进行查看
8,asp.net core 默认的是http://localhost:5000和https://localhost:5001端口,如果想改端口,在Program.cs添加
builder.WebHost.UseUrls("https://127.0.0.1:5002");
上面的代码必须在var app = builder.Build();之前