无法在SignalR 2.0.0中注册路由

时间:2013-07-12 10:49:54

标签: routes signalr owin

我决定转向最新版本的signalr,但我遇到了一些问题。首先,注册路线的方式已完全改变;所以我试着按照这个链接http://www.asp.net/vnext/overview/latest/release-notes#TOC13建议的方式去做。

问题是虽然我添加了

<appSettings>
    <add key="owin:AppStartup" value="xxx.Startup, App_Code"/>
</appSettings>

到web.config,根本没有调用Configuration。有谁知道我做错了什么?

5 个答案:

答案 0 :(得分:5)

解决方案!

<appSettings>
    <add key="owin:AppStartup" value="MyNameSpace.Startup, MyNameSpace" />
    <add key="owin:AutomaticAppStartup" value="true" />
</appSettings>

<system.web>
<httpHandlers>
  <add verb="*" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb"/>
</httpHandlers>
</system.web>

<system.webServer>
<handlers>
  <add name="Owin" verb="*" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb"/>
</handlers>
</system.webServer>

答案 1 :(得分:2)

我能够通过

获得2.0测试版
  • 删除所有对旧版SignalR的引用,即nuget卸载库并仔细检查/ bin

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

  • 按照操作link

  • 中列出的1.x到2.0迁移中的步骤进行操作
  • 最重要的是将项目配置更改为使用本地IIS Web服务器而不是Visual Studio Developer Server(Cassini)。

问题/答案中的更多信息我发布了here

答案 2 :(得分:1)

对我来说,答案是这个DLL丢失了:

Microsoft.Owin.Host.SystemWeb.dll

我的构建过程省略了它。它似乎需要存在于Asp.Net站点的bin文件夹中,才能调用Configuration方法。

答案 3 :(得分:0)

这是一个网站吗?如果这是一个网站,网站的程序集将动态生成,因此您无法找到这样的启动类的完全限定名称。而是尝试在代码中添加程序集级别属性,并查看是否调用了Startup.Configuration。

[assembly:OwinStartup(typeof(Startup))]

答案 4 :(得分:0)

默认情况下,它会搜索名为Startup的文件;所以我唯一要做的就是在Assembly-name.Startup命名空间下创建一个Startup类。

命名空间应遵循上述模式,以便能够找到启动类