我有一个ASP.NET MVC应用程序,它引用另一个项目,即SignalR应用程序。网络偶尔会调用SignalR应用程序。我刚刚在Microsoft Azure服务器上部署了Web。部署还包括SignalR中心,可通过mysite.azurewebsites.net/signalr/hubs获得。
现在,我在Web应用程序中进行了一些更新,并希望再次重新上传整个解决方案。但是,我无法同时部署这两个项目。我可以部署SignalR集线器或Web应用程序,但mysite.azurewebsites.net/signalr/hubs找不到任何集线器。
起初我以为它是由ASP MVC应用程序中的路由更改引起的。我改变了
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
)
到
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
但即使在恢复更改后,我也无法同时部署这两个应用程序。我不明白,问题可能在哪里。
我所做的一个重大改变是将ASP.NET Identity包添加到我的网站。该软件包还使用OWIN库(类似于SignalR)。这可能是问题吗?我希望不会,因为那时我将不得不重新做整个数据库......
修改
我尝试将Startup类移动到ASP.MVC应用程序中:
[assembly: OwinStartup(typeof(MyMvcApp.Startup))]
namespace MyMvcApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
但它似乎没有找到当前组件之外的任何集线器。
答案 0 :(得分:0)
问题是我在Web.config中重写了启动:
<add key="owin:AppStartup" value="MyMvcApp.IdentityConfig" />
删除此行并将代码从IdentityConfig.cs
移至Startup.cs
解决了此问题。