升级到SignalR-2.0.0-beta2时未生成/ signalr/hubs

Jer*_*rry 7 .net c# asp.net-mvc signalr angularjs

我有一个在SignalR 1.1.2上运行的应用程序的工作聊天,它将被放到负载平衡的服务器上,所以我需要实现一个背板解决方案来同步服务器.

这是一个ASP.NET MVC4 .NET 4.5应用程序.使用SignalR Hub,而不是持久连接.该应用程序利用客户端的AngularJS来处理ui绑定和更新.

我按照此处列出的步骤实现了sql server背板,并使用了此处概述的1.x到2.0迁移中概述的步骤.解决方案构建,但是当点击使用SignalR的页面时,"/ signalr/hubs"脚本引用返回500错误.

这是我到目前为止所采取的步骤列表.

  • 使用nuget,删除了与SignalR 1.1.2相关的所有引用和依赖项.双重检查/ bin和/ packages目录以确保它们不再引用任何旧库.这是关于2.0升级的github 问题上的评论,该问题表示卸载和重新安装SignalR是升级的方法.

  • 通过软件包管理器控制台(PMC)安装SignalR 2.0.0-beta2 Install-Package Microsoft.AspNet.SignalR -Pre

  • 使用PMC安装SQL Server消息传递背板 Install-Package Microsoft.AspNet.SignalR.SqlServer -Pre

  • RouteTable.Routes.MapHubs();从Global.asax中删除

  • 在项目的根目录中创建了Startup类.

Startup.cs

using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;

namespace My.NameSpace
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapHubs();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 添加<add key="owin:AppStartup" value="My.NameSpace.Startup, App_Code"/><appSettings>Web.config内部

  • 在Startup.Configuration()方法中放置一个断点,并在应用程序启动时验证它是否被命中并执行app.MapHubs而没有异常

  • 我没有使用持久连接,所以没有包含该行,app.MapConnection<MyConnection>("/echo");并没有得到任何模棱两可的定义问题.

  • 聊天应用页面引用了以下库

    • jQuery的1.8.3.js
    • jquery.signalR-2.0.0-beta2.js
    • <script src='/signalr/hubs'></script>
    • AngularJS v1.1.5
  • 项目运行时,/signalr/hubs聊天应用页面找不到

  • Chrome开发工具返回500 Internal Server Error/signalr/hubs网络选项卡上的呼叫.

  • 文件系统没有/signalr/hubs目录

我的下一步是看看我是否可以使用一个非常基本的集线器创建一个新的解决方案,看看我是否可以使Signal 2.0工作.如果确实如此,我将比较两种解决方案,看看它们之间的区别.

有没有人知道我还能检查或研究什么才能使这个工作?

相关的StackOverflow问题有类似的问题:,

Jer*_*rry 12

事实证明,通过更改项目配置以使用本地IIS Web服务器而不是Visual Studio Developer Server(Cassini)来解决问题.

通过/signalr/hubs在我的浏览器中访问url并查看服务器错误来找到原因

System.PlatformNotSupportedException: This operation requires IIS integrated pipeline mode.

一些谷歌搜索出现在这个页面上,表示该错误是由ASP.NET Development Server不支持集成管道模式引起的.

您可以通过右键单击项目来更改使用的服务器,选择属性,单击Web选项卡,然后在服务器部分下选择"使用本地IIS Web服务器".