Erw*_*ers 5 postgresql asp.net-mvc ubuntu mono nginx
/编辑我完成了上述问题的答案的建议,以授予对注册表的访问权限,如下所示:
sudo mkdir -p /usr/local/etc/mono/registry
sudo chmod uog+rw /usr/local/etc/mono/registry
Run Code Online (Sandbox Code Playgroud)
这没有帮助,因为错误的网关问题仅在使用上述命令授予对注册表的访问权限后才会出现(在我收到注册表错误之前)。
问题:我想将使用 nginx 在 Mono 运行时上运行的 MVC 4 应用程序部署到 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
Run Code Online (Sandbox Code Playgroud)
该脚本安装了 nginx 和 mono 并设置了 nginx.conf 和其他配置文件。
然后我做的是删除这个安装,安装 postgresql 并设置数据库,并用我自己的 MVC 4 Web 应用程序替换 $HOME/www/ 中的文件,该应用程序通过将其复制到那里在本地运行。然后当运行它时我看到一个
错误。
日志文件 /var/log/nginx/error.log 表示(对于第一个和后续请求):
2015/04/03 14:24:36 [错误] 1305#0: *6 从上游读取响应头时上游过早关闭连接,客户端:my.ip.207,服务器:localhost,请求:“GET /Account/Login ?ReturnUrl=%2f HTTP/1.1",上游:"fastcgi://127.0.0.1:9001",主机:"oogstplanner.cloudapp.net"
2015/04/03 14:26:05 [错误] 1305#0: *8 连接到上游时 connect() 失败(111:连接被拒绝),客户端:my.ip.207,服务器:localhost,请求:“GET / HTTP/1.1”,上游:“fastcgi://127.0.0.1: 9001”,主机:“oogstplanner.cloudapp.net”
2015/04/03 14:29:24 [错误] 1305#0:*10 connect() 失败(111:连接被拒绝),同时连接到上游,客户端:my.9001 ip.58,服务器:localhost,请求:“GET / HTTP/1.1”,上游:“fastcgi://127.0.0.1:9001”,主机:“oogstplanner.cloudapp.net”
(...)
所以它确实看到它需要转到/Account/Login?ReturnUrl!有些东西正在发挥作用。
当我复制回默认应用程序时,它会再次运行。
配置:
/edit 我强烈怀疑它与 PostgreSQL 数据库有关。这是因为我刚刚重新启动服务器,并看到 NauckIt.PostgreSQLProvider 抛出这个 NullReferenceException:

此错误总是在本地发生一次,然后刷新后应用程序可以工作。但在服务器上,该应用程序无法运行,但在没有 PostgreSQL 提供程序抛出 NullReferenceException 后,我收到 502 错误。这就是为什么我认为坏网关可能来自 PostgreSQL 连接。
/Edit2 情节变得更加复杂:当我查看数据库时,我看到会话表中正在创建(一些)会话。当这种情况发生时,我看不到任何逻辑,并且无法创建新的逻辑。但有时会存在从网络应用程序到数据库的连接。
以下是重启后(14:25:23)并通过浏览器导航到网站(14:24:36)后的 PostgreSQL 日志:
2015-04-03 14:24:23 UTC 日志:数据库系统已准备好接受连接
2015-04-03 14:24:23 UTC 日志:autovacuum 启动程序已启动
2015-04-03 14:24:23 UTC 日志:不完整启动数据包
2015-04-03 14:24:36 UTC 日志:无法从客户端接收数据:连接被对等方重置
根据 Reddit 用户的说法:
502 Bad Gateway 是一个 HTTP 状态代码,postgres 无法返回,因为 postgres 不支持 HTTP。类似地,NullReferenceException 是一个 Mono 异常,不是由 postgres 抛出的,因此这也不是 postgres 的问题。您的应用程序正在尝试向 postgres 发送一些数据,但在完成此操作之前崩溃了。这是一个应用程序问题,而不是 postgres 问题。希望这可以帮助。
有谁知道这里出了什么问题吗?
PS 我已将我采取的所有步骤记录在自述文件的部署部分下。
该问题可能是由于最初禁用了 http 端口而仅允许 https 引起的。如果尚未启用,请尝试启用http端口,仅允许通过127.0.0.1的请求。除此之外,还要检查配置设置中的“超时”值。
| 归档时间: |
|
| 查看次数: |
16009 次 |
| 最近记录: |