2013-07-30 57 views
7

我有一个像SignalR 1.1.2上运行的应用程序一样的工作聊天,它将被放到负载平衡的服务器上,所以我需要实现一个背板解决方案同步服务器。/signalr /集线器在升级到SignalR-2.0.0-beta2时未生成

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

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

下面是我到目前为止所采取的一系列步骤。

  • 使用nuget删除了与SignalR 1.1.2相关的所有引用和依赖关系。双重检查/ bin和/ packages目录以确保它们不再引用任何旧库。这是关于2.0升级的github issue上的每条评论,其中说卸载和重新安装SignalR是升级的方式。

  • 通过包管理器控制台(PMC)

    安装SignalR 2.0.0-β2 Install-Package Microsoft.AspNet.SignalR -Pre

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

  • 删除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(); 
     } 
    } 
} 
  • 新增<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浏览器开发工具的/signalr/hubs呼叫网络选项卡上返回500 Internal Server Error找到。

  • 文件系统不具有/signalr/hubs目录

我的下一步是看看我是否可以创建一个非常基本的枢纽新的解决方案,看看我能得到信号2.0工作。如果是这样,我会比较两种解决方案,看看有什么不同。

有没有人有一个想法,我还可以检查或研究得到这个工作?

相关的StackOverflow问题给出了类似的问题:onetwo

回答

12

原来的问题是固定的,通过改变项目配置使用本地IIS Web服务器,而不是Visual Studio开发服务器(卡西尼)。

前往/signalr/hubs网址在我的浏览器,看到这是

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

一些谷歌搜索变成了这个page其中所说的错误是由ASP.NET开发服务器不会导致服务器发现错误原因支持集成管道模式。

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

+0

你救了我的一天! – Christopher

+0

奇怪的是我的选项已经设置为IIS Express(Visual Studio 2013)。我如何得到这个工作是将选项更改为外部主机,然后恢复到IIS Express并运行。 – Dev

0

在我的情况下,IIS安装不正确。我只是不得不重新安装它:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 
相关问题