该控制器赢得';无法在Azure上的Web Api中显示 namespace-StorageRoleMVC4.Controllers { 公共类SearchController:ApicController { 公共字典获取([FromUri]字符串搜索字符串,[FromUri]字符串搜索对象) { var searchHelper=新的SearchStorageHelper(); var objectList=searchHelper.Retrieve(searchString,searchObject); 返回对象列表; } } }

该控制器赢得';无法在Azure上的Web Api中显示 namespace-StorageRoleMVC4.Controllers { 公共类SearchController:ApicController { 公共字典获取([FromUri]字符串搜索字符串,[FromUri]字符串搜索对象) { var searchHelper=新的SearchStorageHelper(); var objectList=searchHelper.Retrieve(searchString,searchObject); 返回对象列表; } } },azure,asp.net-mvc-4,asp.net-web-api,azure-web-roles,Azure,Asp.net Mvc 4,Asp.net Web Api,Azure Web Roles,这个控制器是否有任何东西使得它在部署(到Azure web角色)后无法访问?当我试图达到它时,我只是得到一个404错误。它在本地模拟器上工作得很好 在我部署项目的最后两次中,我的web服务中的所有控制器在几个小时内都返回了404个错误,直到项目似乎自行修复为止。我不知道为什么,但可能有关系 更新 发布后,web角色VM上的事件日志中出现警告: 属于站点“1273337584”的应用程序“/”具有无效的AppPoolId“ea7a2e15-9390-49e1-a16b-67ff1cdb7dcb”集

这个控制器是否有任何东西使得它在部署(到Azure web角色)后无法访问?当我试图达到它时,我只是得到一个404错误。它在本地模拟器上工作得很好

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

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

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

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


当我重新启动web角色VM时,大多数控制器会再次工作,并且万维网发布服务也会打开。但是,这个搜索控制器仍然不起作用。或者这个问题发生后我创建的任何其他新控制器

嗯,在经历了大量失败的故障排除之后,我只是返回到代码的早期版本,发现在部署web服务时它没有读取web服务。所以我从那个版本开始,重新构建了三角洲

这涉及到删除一些web.config条目和删除一些库,创建一些类并在global.asax中引用它们(我想它就在那里),以便覆盖te Authorize属性


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

这个项目中有大的依赖关系(Windows身份基础需要安装等)吗?我的一个解决方案有多个服务,部署后需要几分钟或更长时间才能启动。然而,花几个小时是不正常的。您是否在部署解决方案后立即尝试RDP并检查所有日志记录,或在本地点击页面(自定义错误关闭)?嗨,巴特,我不这么认为。这似乎是在我实现了简单的http身份验证之后开始发生的,但我发布了它,然后进行了测试,一切似乎都正常,然后上床睡觉,第二天早上它就坏了。现在,一周后,我又发表了一篇文章,并破坏了控制器。重新启动该实例似乎修复了其他控制器,但我上面发布的这一个根本不起作用-只返回404。你试过用fiddler分析吗。。。比较请求和响应头?有时,如果他们不正确,他们将无法工作。你是否有一个ELMAH模块与你的API一起部署,以确保一切都启动?是的,我所有的测试都是用Fiddler进行的。发布后,所有控制器返回404。我重新启动了web角色实例,除此之外,它们都已修复。我所做的就是在composer中更改URL中的参数。标题是相同的。我甚至创建了一个新的控制器,并部署它只是为了看看发生了什么,而这个控制器也是404。就好像我已经达到了我能拥有多少控制器的极限,或者什么的。。。任何新的都有404。而且,我从来没有听说过艾玛-我会调查一下。我在web角色VM上发现一个错误-我正在用它更新原始帖子。
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;
        }
    }
}