【问题标题】:This controller won't show up in Web Api on Azure此控制器不会出现在 Azure 上的 Web Api 中
【发布时间】:2012-11-12 09:05:30
【问题描述】:
namespace StorageRoleMVC4.Controllers
{
    public class SearchController : ApiController
    {
        public Dictionary<string, string> Get([FromUri] string searchString, [FromUri] string searchObject)
        {
            var searchHelper = new SearchStorageHelper();
            var objectList = searchHelper.Retrieve(searchString, searchObject);

            return objectList;
        }
    }
}

此控制器是否有任何使其在部署后无法访问(到 Azure Web 角色)?当我尝试访问它时,我只是收到一个 404 错误。它在本地模拟器上运行良好。

最近 2 次我部署了我的项目,我的 Web 服务中的所有控制器在几个小时内都返回了 404 错误,直到项目似乎自行修复。我不知道为什么,但它可能是相关的。

更新 发布后,Web 角色 VM 上的事件日志中有一条警告: 属于站点“1273337584”的应用程序“/”设置了无效的 AppPoolId“ea7a2e15-9390-49e1-a16b-67ff1cdb7dcb”。因此,应用程序将被忽略。

这是我网站的 ID,但 AppPoolId 不正确。更改应用程序池会将 404 变为 502。

此外,发布后,万维网发布服务将关闭。当我打开它并进行 IIS 重置时,重置后它再次关闭。

当我重新启动 Web 角色 VM 时,大多数控制器再次工作,并且万维网发布服务已打开。但是,这个 SearchController 仍然不起作用。或者自从这个问题开始发生以来我创建的任何其他新控制器。

【问题讨论】:

  • 您在这个项目中是否有任何大的依赖项(Windows Identity Foundation 需要安装等)?我的一个解决方案有多种服务,部署后确实需要几分钟或更长时间才能启动。但是,花费几个小时是不正常的。您是否在部署解决方案后立即尝试 RDP 并检查您拥有的任何日志记录或在本地点击页面(自定义错误关闭)?
  • 嗨,巴特,我不这么认为。这似乎是在我实现简单的 http 身份验证后立即开始发生的,但我发布了它,然后进行了测试,一切似乎都正常,然后上床睡觉,第二天早上它就坏了。现在,一周后,我再次发布并破坏了控制器。似乎重新启动实例可以修复其他控制器,但我在上面发布的这个根本不起作用 - 只是返回 404。
  • 您是否尝试过使用 fiddler 进行分析? ...比较请求和响应标头?有时,如果它们不正确,它们将无法工作。您是否使用 API 部署了 ELMAH 模块以确保一切正常?
  • 是的,我所有的测试都是用 Fiddler 进行的。我发布了,所有控制器都返回 404。我重新启动了 Web 角色实例,它们是固定的,除了这个。我所做的只是在作曲家中更改 URL 中的参数。标题是相同的。我什至创建了一个新的控制器并部署它只是为了看看发生了什么,那个也是 404。这几乎就像我刚刚达到了我可以拥有多少控制器或其他东西的极限......任何新的控制器都会执行 404。
  • 另外,我从未听说过 ELMAH - 我会调查一下。我在网络角色 VM 上发现了一个错误 - 我正在用它更新原始帖子。

标签: azure asp.net-mvc-4 asp.net-web-api azure-web-roles


【解决方案1】:

好吧,经过大量不成功的故障排除后,我刚刚回滚到早期版本的代码,发现在部署它时它没有读取 Web 服务。所以我从那个版本重新开始并重新构建了增量。

这涉及删除一些 web.config 条目并删除一些库,创建一些类并在 global.asax 中引用它们(我认为这就是它所在的位置)以覆盖 te Authorize 属性...

如果有人有更好的答案,我会将答案切换到您发布的内容。

【讨论】:

    猜你喜欢
    • 2015-06-07
    • 2015-08-13
    • 2020-05-26
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 2019-12-17
    相关资源
    最近更新 更多