0
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 仍然不起作用。或者自从这个问题开始发生以来我创建的任何其他新控制器。

4

1 回答 1

1

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

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

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

于 2012-11-28T18:58:47.657 回答