标签:
目前ASP.NET Core RC2已经正式发布了,可以参考如下链接:
https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-rc2-improvements-schedule-and-roadmap/
https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-net-core-rc2/
虽然提供了关于publish的文档(见参考资料部分),但是目前的文档有几个问题:
要求是Centos 7.1以上版本即可,这里使用Centos 7.2
可以参考.NET Core的官方安装说明,https://www.microsoft.com/net/core#centos。 实际安装时发现.NET Core的安装包在公司虚机上无法下载。解决方案:
主要参考Nginx官方文档:https://nginx.org/en/linux_packages.html
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = root
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
strip_ansi = false
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target
将网站监听的URL修改为可配置的,这样方便修改,示例代码如下
IConfiguration configuration = new ConfigurationBuilder().AddJsonFile("config.json").Build();
var host = new WebHostBuilder()
.UseConfiguration(configuration)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
{
"server.urls": "http://+:5000" //注意这里用+,而不是localhost,用localhost的话只能在本机访问,其他机器不能访问
}
先运行dotnet publish命令发布网站,将网站上传到Linux服务器。然后进入网站目录,运行dotnet app.dll,启动网站。在浏览器查看 http://serverip:5000/ 是否可以正常响应。如果这步成功的话,说明.NET Core相关的已经发布成功了。接下来开始配置Nginx。
server{
listen 8080;
server_name localhost;
location / {
proxy_pass http://unix:/var/aspnet/WebApplication1/kestrel.sock;
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;
}
}
Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -98 EADDRINUSE address already in use) ---> Microsoft.AspNetCore.Server.Kestrel.Networking.UvException: Error -98 EADDRINUSE address already in use
Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -13 EACCES permission denied) ---> Microsoft.AspNetCore.Server.Kestrel.Networking.UvException: Error -13 EACCES permission denied
if [ -S "/var/aspnet/WebApplication1/kestrel.sock" ]; then
rm "/var/aspnet/WebApplication1/kestrel.sock"
fi
dotnet /root/WebApp2/WebApplication1.dll
[program:WebApplication1]
command=bash /root/WebApp2/web.sh
autostart=true
autorestart=true
stderr_logfile=/root/WebApp2/WebApplication1.err.log
stdout_logfile=/root/WebApp2/WebApplication1.out.log
environment=Hosting__Environment=Production
user=root
stopsignal=INT
service supervisor stop
service supervisor start
标签:
原文地址:http://www.cnblogs.com/hamu/p/5587220.html