我正试图在IIS上部署一个SignalR站点。代码在VS中都能正常工作。但是,到目前为止,尝试解决signalr/集线器的404 not 错误。
1)将脚本ref更改为:
script src="<%= ResolveUrl("~/signalr/hubs") %>" type="text/javascript"></script>
2)修改Web.Config,包括:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>
3)为UrlMappingsModule
更改IIS上的调用请求。
4)添加了SignalR.Hosting.AspNet.dll
,看看这是否有任何帮助。
不知道还有什么可以尝试或检查,任何帮助或指向正确的方向?
发布于 2012-06-25 10:20:30
尝试向服务器添加一个通配符应用程序映射,以帮助映射脚本URL“~/signalr/集线器”中的未知扩展
发布于 2013-01-28 14:57:26
路线登记的顺序很重要。我遇到了这个问题,并通过确保我的global.asax.cs看起来像这样修复了它:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteTable.Routes.MapHubs();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
这是在一个网站上使用SignalR,MVC和WebApi一起使用。
发布于 2015-02-16 09:32:49
造成这个404错误的原因是集线器没有映射,以前它必须按照SimonF的回答来完成。如果您正在使用SignalR,那么RouteTable.Routes.MapHubs();
已经过时了。对于映射集线器,可以创建如下所示的启动类。
[assembly: OwinStartup(typeof(WebApplication1.Startup))]
namespace WebApplication1
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
参考资料:http://www.asp.net/signalr/overview/releases/upgrading-signalr-1x-projects-to-20
https://stackoverflow.com/questions/11155064
复制相似问题