' Owin.IAppBuilder'不包含' MapSignalR'的定义

时间:2014-04-14 10:13:23

标签: asp.net signalr owin

错误

'Owin.IAppBuilder'不包含'MapSignalR'的定义,并且没有扩展方法'MapSignalR'接受类型'Owin.IAppBuilder'的第一个参数可以找到(你是否错过了使用指令或汇编参考?)

代码

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
    }
}  

非常感谢任何帮助......

更新

signalR version 2.0.3
Microsoft Owin版本2.0.2
Owin版本1.0.0
Visual Studio 2012

7 个答案:

答案 0 :(得分:47)

只安装此nuget:

安装包Microsoft.AspNet.WebApi.OwinSelfHost

答案 1 :(得分:20)

最后能够通过在添加来自NuGet包的signalR之前添加 signalR 依赖关系来解决它 我遵循的步骤:

  1. 添加了Microsoft.Owin //version 2.0.1
  2. 添加了Microsoft.Owin.Security //version 2.0.1
  3. 添加了Microsoft Asp.Net SignalR
  4. 我发现 Microsoft.Owin和Microsoft.Owin.Security version 2.0.2的问题,然后添加名为 Startup.cs的类 ,代码如下:

    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartup(typeof(webApp.Startup))]
    namespace webApp
    {
        public static class Startup
        {
            public static void Configuration(IAppBuilder app)
            {
                app.MapSignalR();
            }
        }
    }  
    

    直接从NuGet添加Microsoft Asp.Net SignalR会添加version 2.0.2 of Microsoft.Owin and Microsoft.Owin.Security,从而产生问题 希望它可以帮助某人...... !!

答案 2 :(得分:12)

Update-Package Owin -Reinstall

为我工作

答案 3 :(得分:3)

安装Nuget软件包:Microsoft.AspNet.Identity.Owin

答案 4 :(得分:2)

使用MVC5,输入您的Startup.cs文件。

IAppBuilder appBuilder添加到Configure()

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAppBuilder appBuilder)
    {

然后,在

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

添加appBuilder.MapSignalR();

答案 5 :(得分:1)

开箱即用的Asp.Net 5空mvc项目创建了一个类似于此的东西

 using Microsoft.Owin;
using Owin;
namespace DeadlyChat
{
public class Startup
{
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app)
    {
        app.MapSignalR();



       }
    }
}

我花了一些时间注意到Configure应该是Configuration,而IApplicationBuilder需要是IAppBuilder。我还在命名空间上面删除了程序集注释。

我最终试图使用Asp.Net 5进行报废无法使其正常运行。回到4.6,一切正常。按照本演练http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

进行

答案 6 :(得分:1)

我有同样的问题。结果我的.csproj文件第一行:

Project ToolsVersion =“12.0”与我的其他文件不匹配。将其更改为:

Project ToolsVersion =“14.0”

并没有更多的编译问题。