0

我在我的 Linux Suse 12.1 VPS 服务器上运行了 ac# Soap 服务。在我对肥皂服务进行了小改动并将其复制到我的 VPS 之前,这一直运行良好且没有问题。我认为这一定是我的更改有问题,所以我回滚了我的更改,但仍然无法正常工作。甚至一些没有被触及的方法也失败了。

但是,我已经在我的开发机器上进行了测试,该机器在 Windows 上运行良好,并且还将soap界面复制到了一个与我的 VPS 完全相同的方式设置的 linux 开发机器上,即 OpenSuse 12.1 并且具有所有和我的 VPS 网络服务器一样的东西。两者都工作得很好,从来没有遇到任何问题。

然而,在 VPS 主机上,mod-mono-server 经常崩溃,即使它启动,也无法读取 asmx 文件,只是显示服务器错误,我需要运行rcapache2 restart以加载测试页面。

在 apache 错误日志文件中,我有以下内容:

[Thu Aug 30 20:10:19 2012] [error] (70014)End of file found: read_data failed [Thu Aug 30 20:10:19 2012] [error] 命令流损坏,最后一个命令为 1 [Thu Aug 30 2012 年 20:08:47] [错误] 命令流损坏,最后一个命令是 7

我不知道可能是什么问题,我尝试重新启动 VPS 但没有区别。

我正在使用 ASP.net 4 版本的 mod-mono-server。

感谢您的任何帮助,您可以提供。

更新 1 我刚刚注意到 apache 错误中的其他内容。日志文件包含以下内容

[Thu Aug 30 20:46:31 2012] [notice] caught SIGTERM, shutting down
[Thu Aug 30 20:46:32 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Aug 30 20:46:32 2012] [error] Not running mod-mono-server.exe because no MonoApplications, MonoApplicationsConfigFile or MonoApplicationConfigDir specified.

更新 2 刚刚发现,不完全确定是否有帮助。只要不需要访问 mysql 数据库,soap 服务就可以在服务器上正常工作。如果它执行查询,它会an internal server error 500在测试页面中显示一个。但如果从 PHP 调用它会导致它崩溃单声道。数据库是mysql数据库,是本地数据库。有 34% 的 RAM 可用,所以我不认为这是内存问题。我还清空了数据库表以确定是否修复了它,如果它与数据量有关,但这也没有修复它。

4

1 回答 1

0

感谢@knocte 的建议,我设法找出了问题所在。

当 Soap 服务访问数据库时,它会读取 config.xml 以确定用于访问数据库的用户名和密码,我猜这个配置文件在传输过程中被损坏了。虽然我可以在 vi 中读取它,但可能是文件有问题,阻止了 soap 服务读取配置。

我所做的只是删除文件并手动将内容复制并粘贴到文件中。

由于某种原因,当它无法访问数据库时,它会崩溃单声道,即使肥皂服务中的所有 MySQL 内容都有 MySQL 异常处理。@knocte 测试soap 服务的建议被证明是有用的,因为当它用于从soap 服务访问数据库时,xsp4 将停止但显示错误,指出它没有访问数据库的权限,即使它具有正确的用户名和配置文件中的密码。

一旦我重新创建了配置文件,soap 服务就会再次正常工作。

谢谢你的帮助。

于 2012-09-01T19:19:15.290 回答