Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# /升级到signalr-2.0.0-beta2时未生成信号机/集线器_C#_.net_Asp.net Mvc_Angularjs_Signalr - Fatal编程技术网

C# /升级到signalr-2.0.0-beta2时未生成信号机/集线器

C# /升级到signalr-2.0.0-beta2时未生成信号机/集线器,c#,.net,asp.net-mvc,angularjs,signalr,C#,.net,Asp.net Mvc,Angularjs,Signalr,我在SignalR 1.1.2上运行了一个类似聊天的应用程序,它将被放到负载平衡服务器上,因此我需要实现一个背板解决方案来同步服务器 这是一个ASP.NET MVC4.NET 4.5应用程序。使用信号集线器集线器,而不是持续连接。该应用程序利用客户端的AngularJS来处理ui绑定和更新 我遵循了列出的步骤来实现sql server背板,并使用了1.x到2.0迁移中概述的步骤。解决方案将生成,但当点击使用SignalR的页面时,“/SignalR/hubs”脚本引用返回500错误 以下是我迄今

我在SignalR 1.1.2上运行了一个类似聊天的应用程序,它将被放到负载平衡服务器上,因此我需要实现一个背板解决方案来同步服务器

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

我遵循了列出的步骤来实现sql server背板,并使用了1.x到2.0迁移中概述的步骤。解决方案将生成,但当点击使用SignalR的页面时,“/SignalR/hubs”脚本引用返回500错误

以下是我迄今为止采取的步骤列表

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

  • 通过Package Manager控制台(PMC)安装的信号机2.0.0-beta2
    安装软件包Microsoft.AspNet.signal-Pre

  • 使用PMC安装包Microsoft.AspNet.signal.SqlServer-Pre安装的SQL Server消息传递背板

  • 已删除
    RouteTable.Routes.MapHubs()来自Global.asax

  • 在项目的根目录中创建了启动类

Startup.cs

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

namespace My.NameSpace
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapHubs();
        }
    }
}

  • 添加了

    通过将项目配置更改为使用本地IIS Web服务器而不是Visual Studio Developer server(Cassini),解决了该问题

    通过在我的浏览器中转到
    /signal/hubs
    url并查看服务器错误,找到了原因

    System.PlatformNotSupportedException:此操作需要IIS集成管道模式。

    一些谷歌搜索发现了这一错误,称该错误是由ASP.NET开发服务器不支持集成管道模式造成的


    您可以通过右键单击项目,选择属性,点击web选项卡,然后在服务器部分下选择“使用本地IIS web服务器”来更改所使用的服务器。在我的情况下,IIS未正确安装。我只需要重新安装它:

    c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
    

    奇怪的是,我的选项已经设置为IIS Express(Visual Studio 2013)。我是如何做到这一点的,就是将选项更改为外部主机,然后恢复为IIS Express,它成功了。