一尘不染

升级到SignalR-2.0.0-beta2时不会生成/ signalr / hub

angularjs

我有一个像在SignalR 1.1.2上运行的应用程序那样的正常聊天,它将被放置在负载平衡的服务器上,因此我需要实现一个底板解决方案来同步服务器。

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

我已经按照此处列出的步骤来实现sql服务器背板,并使用了此处概述的从1.x到2.0迁移中概述的步骤。该解决方案可以构建,但是当点击使用SignalR的页面时,“ / signalr /
hubs”脚本引用将返回500错误。

这是我到目前为止所采取的步骤清单。

  • 使用nuget,删除了与SignalR 1.1.2相关的所有引用和依赖项。仔细检查/ bin和/ packages目录,以确保它们不再引用任何旧库。这是在与2.0升级有关的github 问题上找到的每条评论,该评论说卸载和重新安装SignalR是升级的方式。

  • 通过Package Manager Console(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();
        }
    }
}
  • 添加<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 dev工具会在“网络”标签上返回500 Internal Server Error/signalr/hubs呼叫。

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

下一步是查看是否可以使用非常基本的集线器创建新的解决方案,并查看Signal
2.0是否可以正常工作。如果可以,我将比较这两种解决方案,以了解两者之间的区别。

有谁知道我还可以检查或研究什么才能使它起作用?

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


阅读 271

收藏
2020-07-04

共1个答案

一尘不染

事实证明,此问题已通过将项目配置更改为使用本地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服务器”来更改使用的服务器。

2020-07-04