我的情况很奇怪。以下是我的场景:
我一直在研究MVC5 Web API2项目主办Rackspace托管。根据我添加的图表,API 项目是一号。我们有两个数据源,一个是MongoDB托管在 Linux 服务器中,使用MongoDB 驱动程序 1.10.0.62. 另一个数据源是MySQL 数据库同一 Rackspace 托管。现在,我有一个客户端应用程序,它客户端应用程序在我的图表中。从 ClientAPp,我使用 AppOne 的 API 推送和拉取数据。它非常适合测试目的。在这个阶段,我有
- MongoDB在Linux
- MySQL数据库在 Rackspace 上
- 一号主办Rackspace(API 项目)
- 我的客户端应用程序名为客户端应用程序主办Rackspace
上述设置对我来说非常完美。我工作的公司决定转移AppOne(API项目)到他们自己的 Windows 服务器。所以从现在开始,我有一个 Windows Server 2012 R2 和 IIS8.5 来托管 AppOne(API 项目)。仅供参考,Windows 服务器安装了 16GB RAM 和 SDD 作为存储。所以在这个阶段我有
- MongoDB在Linux(与以前相同)
- MySQL数据库在Rackspace(与以前相同)
- 一号托管在 Windows Server 上(之前托管在 Rackspace现在连接到MySQL 数据库我正在使用Rackspace连接到MySQL 数据库)
问题:在此阶段,如果我从一台机器调用 API,它会按预期工作。API 应该返回 JSON 数据,并且它会很好地返回这些数据。但是,如果我同时在多台 PC 上调用 API,它只会将数据返回到一台机器,而所有其他机器都会收到 http 500 错误,没有任何错误详细信息。
请注意,我在IIS8.5管理控制台中将请求限制更改为允许无限。但问题仍然存在。
我希望我能描述我的问题,如果有人有任何想法请告诉我。
答案1
在 Web 服务器上启用详细错误模式。这将允许发生错误的内容和描述过滤到 API 的客户端 - 查看错误内容,它将为您提供更好的线索。
或者,查看应用程序事件日志(开始运行-->eventvwr.msc)并查找来源为 ASP.NET 的警告 - 错误 500 以这种方式记录在 iis Web 服务器上 - 发生了什么错误?
确保您已在 IIS 上的 webapi 网站的 web.config 中进行设置 - 当调试模式为真时,它会在每次连接到网站时启用服务器端重新编译(从而锁定文件以防止任何其他客户端连接访问)。