【问题标题】:'Owin.IAppBuilder' does not contain a definition for 'MapSignalR'“Owin.IAppBuilder”不包含“MapSignalR”的定义
【发布时间】:2014-05-28 06:10:49
【问题描述】:

错误

“Owin.IAppBuilder”不包含“MapSignalR”的定义,并且 没有扩展方法“MapSignalR”接受类型的第一个参数 可以找到“Owin.IAppBuilder”(您是否缺少 using 指令 还是程序集参考?)

代码

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 版本 2.0.3
微软 Owin 2.0.2 版
Owin 1.0.0版
视觉工作室 2012

【问题讨论】:

    标签: c# asp.net signalr owin


    【解决方案1】:

    只安装这个 nuget:

    Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
    

    【讨论】:

    • 也需要安装这个nuget:Install-Package Microsoft.Owin.Cors -Version 3.1.0
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      使用 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();

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。结果是我的 .csproj 文件的第一行:

        Project ToolsVersion="12.0" 与我的其他文件不匹配。改为:

        项目工具版本="14.0"

        并且没有更多的编译问题。

        【讨论】:

          【解决方案5】:

          开箱即用的 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】:
            Update-Package Owin -Reinstall
            

            为我工作

            【讨论】:

            • 也为我工作,谢谢。我尝试了上面的其他解决方案,但它们不起作用。这个做到了。
            【解决方案7】:

            终于能够通过在从 NuGet 包添加 signalR 之前添加 signalR 依赖项来解决它
            我遵循的步骤:

            1. 添加了 Microsoft.Owin //version 2.0.1
            2. 添加了 Microsoft.Owin.Security //version 2.0.1
            3. 添加了 Microsoft Asp.Net SignalR

            我发现的原因是 Microsoft.Owin 和 Microsoft.Owin.Securityversion 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,这会产生问题。
            希望它可以帮助某人...!!

            【讨论】:

            • 谢谢!你让我免于在周五晚上变得非常沮丧!
            • 仅供参考,截至 2015 年 2 月 15 日,这似乎已经解决。我只直接安装了 Microsoft.AspNet.SignalR,上面的工作正常。
            • 这是一个旧的解决方案。请参考@mggSoft 的答案以获取最新答案。
            • 非常感谢我的朋友...您的解决方案解决了我工作了 1 个小时的问题...
            猜你喜欢
            • 1970-01-01
            • 2017-07-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-01-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多