我有一个托管 4 个 MVC 4 个站点的 Web 角色。其中一个站点(我们从现在开始将其称为 API 站点)同时使用 MVC 和 Web API。当我升级 Web 角色时,API 站点中的 Web API 控制器会向所有请求返回 500 Internal Server Error。MVC 控制器按预期工作,我知道请求至少达到 global.asax 的 Application_BeginRequest 方法。我没有看到任何记录在我的 Elmah 日志中。我有任何错误的唯一提示是事件日志中的以下内容:
属于站点“1”的应用程序“/”设置了无效的 AppPoolId“DefaultAppPool”。因此,该应用程序将被忽略。
由于网络角色使用带有 guid 作为标识符的应用程序池,我不知道这是从哪里来的。
最令人困惑的是,一旦我为 API 站点(这是一个 guid)回收应用程序池,一切都会开始正常工作。
我已经尝试将应用程序池作为角色启动任务的一部分进行回收,但这似乎没有任何区别。
关于如何让 Web API 正确启动的任何建议?