Ubuntu MVC4应用程序上的nginx、PostgreSQL和Mono“上游在阅读上游响应报头时过早关闭连接”

vngu2lb8  于 2023-02-08  发布在  PostgreSQL
关注(0)|答案(2)|浏览(113)

/Edit我采纳了the answer to the question mentioned above的建议,按如下方式授予对注册表的访问权限:

sudo mkdir -p /usr/local/etc/mono/registry
sudo chmod uog+rw /usr/local/etc/mono/registry

这并没有帮助,因为坏网关问题只出现 * 后 * 已给予访问注册表与上述命令(在此之前,我得到注册表错误).

    • 问题**:我想部署一个运行在Mono运行时的MVC 4应用程序,并使用nginx到Azure的Ubuntu服务器。通过选择这样的Ubuntu服务器并运行安装程序脚本,我成功地在oogstplanner.cloudapp.net上运行并显示了一个默认的Web应用程序。安装程序的工作原理如下:
wget https://bitbucket.org/mindbar/install-mono/raw/master/install-nginx- 
mono.sh && sudo chmod +x install-nginx-mono.sh && ./install-nginx-mono.sh

该脚本安装了nginx和mono,并设置了nginx. conf和其他配置文件。
然后我删除了这个安装,安装了postgresql并设置了数据库,用我自己的MVC 4 Web应用程序替换了$HOME/www/中的文件,该应用程序可以通过复制在本地运行。

错误。
日志文件/var/log/nginx/error.log显示(对于第一次和后续请求):
2015年4月3日14:24:36 [错误] 1305#0:* 6在从上游读取响应报头时,上游过早关闭连接,客户端:my.ip.207,服务器:本地主机,请求:"获取/帐户/登录?返回URL = %2f HTTP/1.1",上游:"快速目录名称://127.0.0.1:9001",主机:"示例网站"oogstplanner.cloudapp.net"
2015年4月3日14:26:05 [错误] 1305#0:* 8连接()失败(111:连接被拒绝),客户端:my.ip.207,服务器:本地主机,请求:"GET/HTTP/1.1",上游:"快速目录名称://127.0.0.1:9001",主机:"示例网站"oogstplanner.cloudapp.net"
2015年4月3日14:29:24 [错误] 1305#0:* 10连接()失败(111:连接被拒绝),客户端:my.ip.58,服务器:本地主机,请求:"GET/HTTP/1.1",上游:"快速目录名称://127.0.0.1:9001",主机:"示例网站"oogstplanner.cloudapp.net"
(...)
因此,它确实看到它需要转到/Account/Login?ReturnUrl!
当我复制回默认应用程序时,它再次工作。
配置:

/edit我强烈怀疑这与PostgreSQL数据库有关,因为我刚刚重启了服务器,看到NauckIt抛出了这个NullReferenceException异常。PostgreSQL提供者:

这个错误总是发生在本地 * 一次 *,然后刷新后应用程序工作。但在服务器上的应用程序不工作,但在没有PostgreSQL提供程序抛出NullReferenceException后,我得到了502错误。所以这就是为什么我认为坏网关可能来自PostgreSQL连接。
/Edit2绘图变厚:当我查看数据库时,我看到Sessions表中正在创建(一些)会话。我没有看到任何逻辑,也无法创建新的会话。但有时会从Web应用程序连接到数据库。
以下是重新启动(14:25:23)并通过浏览器导航到网站(14:24:36)后的PostgreSQL日志:
2015年4月3日14:24:23协调世界时日志:数据库系统已准备好接受连接
2015年4月3日14:24:23协调世界时日志:自动真空发射器启动
2015年4月3日14:24:23协调世界时日志:不完整启动包
2015年4月3日14:24:36协调世界时日志:无法从客户端接收数据:连接被对等方重置
据一位reddit用户说:
502 Bad Gateway是一个HTTP状态码,不能被postgres返回,因为postgres不支持HTTP。同样,NullReferenceException是一个Mono异常,不是由postgres抛出的,所以这也不是postgres的问题。你的应用程序试图发送一些数据到postgres,但是在它完成之前崩溃了。这是一个应用程序问题,不是postgres的问题。希望这能有所帮助。
有人知道这是怎么回事吗?
PS我已经在README文件中的部署部分记录了我采取的所有步骤。

ca1c2owp

ca1c2owp1#

此问题可能是由于最初禁用http端口而仅允许https导致的。如果尚未启用,请尝试启用http端口,仅允许通过127.0.0.1的请求。此外,还要检查配置设置中的“timeout”值。

v8wbuo2f

v8wbuo2f2#

如果您使用的是MS SQL Server,并在应用程序日志中发现一些异常,尝试关闭SQL Server连接字符串中的Trusted_Connection选项,则会出现相同的错误:

"ConnectionString": "Data Source=127.0.0.1;Database=db;User Id=dbuser;password=dbpassword;Trusted_Connection=false"

相关问题