C# /升级到signalr-2.0.0-beta2时未生成信号机/集线器
我在SignalR 1.1.2上运行了一个类似聊天的应用程序,它将被放到负载平衡服务器上,因此我需要实现一个背板解决方案来同步服务器 这是一个ASP.NET MVC4.NET 4.5应用程序。使用信号集线器集线器,而不是持续连接。该应用程序利用客户端的AngularJS来处理ui绑定和更新 我遵循了列出的步骤来实现sql server背板,并使用了1.x到2.0迁移中概述的步骤。解决方案将生成,但当点击使用SignalR的页面时,“/SignalR/hubs”脚本引用返回500错误 以下是我迄今为止采取的步骤列表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错误 以下是我迄今
- 使用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
- 在项目的根目录中创建了启动类
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),解决了该问题 通过在我的浏览器中转到
url并查看服务器错误,找到了原因/signal/hubs
一些谷歌搜索发现了这一错误,称该错误是由ASP.NET开发服务器不支持集成管道模式造成的System.PlatformNotSupportedException:此操作需要IIS集成管道模式。
您可以通过右键单击项目,选择属性,点击web选项卡,然后在服务器部分下选择“使用本地IIS web服务器”来更改所使用的服务器。在我的情况下,IIS未正确安装。我只需要重新安装它:c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
奇怪的是,我的选项已经设置为IIS Express(Visual Studio 2013)。我是如何做到这一点的,就是将选项更改为外部主机,然后恢复为IIS Express,它成功了。