操作系统:Linux,CentOS 代理:Apache Asp.NET Core 1.1
问题:当我决定将其部署在真实服务器上时,我的应用已经到了某个时刻。
所以一切正常,在我的本地机器上完美运行。我没有问题。
但是当我发布并上传到服务器时,它不能按照我的预期运行。我的意思是数据库(SQLite)。 应用程序从数据库读取数据,因为它应该,但只要在我的代码中等待_db.SaveChangesAsync(),应用程序就会崩溃。
我在互联网上搜索过,并没有任何可以帮助我的事情。
到目前为止,我有3种不同的例外:
SQLite错误8:'尝试编写只读数据库'。
我将db文件的权限更改为777及其自身的文件夹,但没有帮助。
得到了这个: SQLite错误14:'无法打开数据库文件'。
当我尝试将其添加到Configure:
时app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto });
获得此豁免: 警告:Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware [1] X-Forwarded-For和X-Forwarded-Proto之间的参数计数不匹配。
连接字符串是:
“DefaultConnection”:“Data Source = GlobalEvent.db”
答案 0 :(得分:0)
问题在于错误的反向代理设置。我找不到适合Apache的解决方案,所以我把它改成了Nginx。说实话,我其实更喜欢它。现在一切正常。此外,我为子域创建了Nginx服务器块。上面的所有其他内容仍然适用。
这是我的ASP.NET核心应用程序的conf文件:
server {
listen 80;
root /var/www/subdomain.domain.com/html;
server_name subdomain.domain.com www.subdomain.domain.com;
location / {
proxy_pass http://localhost:5000;
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;
}
}