未找到SignalR/signalr/hubs 404

use*_*590 36 asp.net iis signalr

我正在尝试在IIS上部署SignalR站点.代码一切正常VS. 但到目前为止,我尝试解决信号器/集线器的404找不到错误.

1)更改脚本参考:

script src="<%= ResolveUrl("~/signalr/hubs") %>" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

2)修改Web.Config包括:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

3)更改IIS上的调用请求UrlMappingsModule.

4)添加SignalR.Hosting.AspNet.dll,看看是否会有所帮助.

不知道还有什么可以尝试或检查,任何帮助或指向正确的方向?

Sim*_*onF 30

路线登记的顺序很重要.我有这个确切的问题并通过确保我的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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是在一个使用SignalR,MVC和WebApi的网站上.

  • 此处标题为"404 not found error"的更多信息:http://www.asp.net/signalr/overview/troubleshooting-and-debugging/troubleshooting (2认同)

Cha*_*ari 19

这个404错误的原因是没有映射集线器,以前必须按照SimonF的回答完成.如果您使用SignalR版本2 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:http://www.asp.net/signalr/overview/releases/upgrading-signalr-1x-projects-to-20


chr*_*dam 13

尝试将通配符应用程序映射添加到服务器,以帮助在脚本URL"〜/ signalr/hubs"中映射未知扩展名

  • 它也适合我!非常感谢Chridam.我的问题是服务器正在寻找以下"localhost/signalr/hubs"(使用Chrome开发者控制台确定).实际上,url是动态的,因此不会获取所需的js文件. (2认同)
  • 嗨,您能否详细说明如何添加通配符应用程序图,请问我需要在何处添加哪些详细信息?我现在有这些症状,想尝试这个答案 (2认同)
  • @chridam我不知道如何添加通配符应用程序映射。请告诉我们? (2认同)

Sob*_*ott 7

如果您正在处理网络表单,请执行以下步骤

  1. 在webconfig中:

    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true"/>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在页面中添加对hub的引用

    <script src="/signalr/signalr/hubs"></script>
    
    Run Code Online (Sandbox Code Playgroud)

    代替

    <script src="/signalr/hubs"></script>
    
    Run Code Online (Sandbox Code Playgroud)

  • &lt;script src="/signalr/signalr/hubs"&gt;&lt;/script&gt; 对我有用 (2认同)

Ran*_* H. 6

通过将 web.config 中的以下 appSetting 更改为“true”,我能够修复 ~/signalr/hubs 上的 404。

<add key="owin:AutomaticAppStartup" value="false" />
Run Code Online (Sandbox Code Playgroud)