8

我刚开始使用SignalRC#,看起来很有趣。

我创建了一个ASP.NET Empty Web Application并遵循下面提到的教程

我在 MSDN 上找到了 SignalR 入门教程。

我已经完成了教程中提到的所有步骤。它似乎在我的本地机器上运行时工作ASP.NET Development Server

但是当我将项目部署到我的IIS7时,它不起作用。

当我检查提琴手时,它在包含在 html 页面中的所有脚本文件上都有 404 的结果。

这是提琴手所展示的在此处输入图像描述

即使我从 StackOverflow 上的帖子中找到了一些建议,当我更改web.config文件时,这些建议似乎也不起作用。

最后我web.config根据SignalR 的常见问题修改了我的。

这是我的 web.config 文件:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
  </system.webServer>

</configuration>

Global.asax 文件:

public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {
            // Register the default hubs route: ~/signalr/hubs 
            RouteTable.Routes.MapHubs();
        }
        // Rest of the Methods(Session_Start,Application_BeginRequest..) are empty
     }

我也变了

 <script type="text/javascript" src="/signalr/hubs"></script>

<script type="text/javascript" src='<%= ResolveClientUrl("~/signalr/hubs") %>'></script>

<script type="text/javascript" src='<%= ResolveUrl("~/signalr/hubs") %>'></script>

它们似乎都不起作用。

不要犹豫,询问是否需要任何信息。

任何帮助,将不胜感激


更新

根据 Aron 的建议,对Global.asax文件进行了以下更改

 RouteTable.Routes.IgnoreRoute("Scripts/");

现在,jQuery脚本似乎也在加载和工作。

这是托管在 IIS 上时更新的错误消息,它来自Console浏览器窗口的选项卡。

SCRIPT5022: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.
4

3 回答 3

1

当 IIS 无法处理扩展少 url 时可能会发生 404 错误

http://support.microsoft.com/kb/980368

于 2013-11-18T19:40:46.297 回答
1

您的 IIS 设置可能存在问题。请尝试为 .js 扩展名添加 MIME 类型。参考这个链接

于 2013-09-03T21:27:39.457 回答
0

MSDN 文章演示了如何在 2.0 版中创建 SignalR 应用程序。但是您使用 signalr 1.0 和可能较旧版本的 Visual Studio。升级 Visual Studio 并使用 nugget 包管理器将 Signalr 2.0 要求添加到您的项目中。我认为作为第一次尝试,最好使用 asp.net Web 应用程序而不是 MVC(如 MSDN 文章)。所以你不会有路由问题。我可以毫无问题地运行示例。

于 2013-12-15T11:33:58.740 回答