Asp.net web api 信号器不使用Autofac和WebAPI+;MVC&x2B;奥温

Asp.net web api 信号器不使用Autofac和WebAPI+;MVC&x2B;奥温,asp.net-web-api,model-view-controller,signalr,owin,autofac,Asp.net Web Api,Model View Controller,Signalr,Owin,Autofac,我们正在尝试使用Autofac通过依赖项注入来启动信号器集线器,但还没有结果。 MVC和Web API与DI配合得很好 这里是配置文件 Startup.cs [assembly: OwinStartupAttribute(typeof(PNAME.WebUI.Startup))] namespace PNAME.WebUI { public partial class Startup { public void Configuration(IAppBuilder

我们正在尝试使用Autofac通过依赖项注入来启动信号器集线器,但还没有结果。 MVC和Web API与DI配合得很好

这里是配置文件

Startup.cs

[assembly: OwinStartupAttribute(typeof(PNAME.WebUI.Startup))]
namespace PNAME.WebUI
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            // Register Routes
            WebApiConfig.Register(config);

            // Register dependencies
            //ConfigureDependencies(app, config);
            var container = DependencyConfiguration.Configure(app);
            SignalRConfiguration.Configure(app, container);
            MvcConfiguration.Configure(app, container);
            WebApiConfiguration.Configure(app, container, config);
            // Configure Authentication middleware
            ConfigureAuth(app, config);

            // configure Web API 
            app.UseWebApi(config);
        }
    }
}
  public static class DependencyConfiguration
    {
        public static IContainer Configure(IAppBuilder app)
        {
            var builder = new ContainerBuilder();


            //Register any other components required by your code....
            builder.RegisterType<MainContext>().As<IApplicationDbContext>();

            builder.RegisterType<OneSignalNotificationService>().As<IPushNotificationService>();

            builder.RegisterType<LogService>().As<ILogger>();

            //Register SignalR Hub
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            //builder.RegisterType<ChatHub>().ExternallyOwned();

            //Register MVC Controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //Register WebApi Controllers
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());

            var container = builder.Build();
            app.UseAutofacMiddleware(container);
            return container;
        }
    }
public class WebApiConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container, HttpConfiguration config)
        {
            // Set the dependency resolver for Web API.
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            config.DependencyResolver = webApiResolver;

            //Configure Action Injection
            //config.InjectInterfacesIntoActions();

            app.UseAutofacWebApi(config);
        }
    }
  public static class SignalRConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            //var config = new HubConfiguration();
            //config.Resolver = new AutofacDependencyResolver(container);
            //config.EnableDetailedErrors = true;

            //app.MapSignalR("/signalr", config);

            app.Map("/signalr", map =>
            {
                map.UseAutofacMiddleware(container);

                var hubConfiguration = new HubConfiguration
                {
                    Resolver = new AutofacDependencyResolver(container),
                    EnableDetailedErrors = true
                };

                map.RunSignalR(hubConfiguration);
            });
        }
    }
public class MvcConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            var mvcResolver = new Autofac.Integration.Mvc.AutofacDependencyResolver(container);
            DependencyResolver.SetResolver(mvcResolver);

            app.UseAutofacMvc();
        }
    }
namespace PNAME.BotServices.NotificationCenter.SignalR
{
    [HubName("ChatHub")]
    public class ChatHub : Hub
    {
        private ILogger _logger;
        //private IChatMessageServices _chatMessageServices;
        private readonly ILifetimeScope _hubLifetimeScope;

        public ChatHub(ILifetimeScope lifetimeScope)
        {
            // Create a lifetime scope for the hub.
            _hubLifetimeScope = lifetimeScope.BeginLifetimeScope("AutofacWebRequest");

            // Resolve dependencies from the hub lifetime scope.
            _logger = _hubLifetimeScope.Resolve<ILogger>();
           // _chatMessageServices = _hubLifetimeScope.Resolve<IChatMessageServices>();

        }

        public bool SendMessage(INotificationMessage notificationMessage)
        {
           //Some code here
        }
        public override Task OnConnected()
        {
            //Some code here
        }
        public override Task OnReconnected()
        {
             //Some code here
        }
        public async Task UpdateStatus(int messageId, int ServerId, StatusType status)
        {
             //Some code here
        }

        protected override void Dispose(bool disposing)
        {
            // Dispose the hub lifetime scope when the hub is disposed.
            if (disposing && _hubLifetimeScope != null)
            {
                _hubLifetimeScope.Dispose();
            }

            base.Dispose(disposing);
        }

    }
}
DependencyConfiguration.cs

[assembly: OwinStartupAttribute(typeof(PNAME.WebUI.Startup))]
namespace PNAME.WebUI
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            // Register Routes
            WebApiConfig.Register(config);

            // Register dependencies
            //ConfigureDependencies(app, config);
            var container = DependencyConfiguration.Configure(app);
            SignalRConfiguration.Configure(app, container);
            MvcConfiguration.Configure(app, container);
            WebApiConfiguration.Configure(app, container, config);
            // Configure Authentication middleware
            ConfigureAuth(app, config);

            // configure Web API 
            app.UseWebApi(config);
        }
    }
}
  public static class DependencyConfiguration
    {
        public static IContainer Configure(IAppBuilder app)
        {
            var builder = new ContainerBuilder();


            //Register any other components required by your code....
            builder.RegisterType<MainContext>().As<IApplicationDbContext>();

            builder.RegisterType<OneSignalNotificationService>().As<IPushNotificationService>();

            builder.RegisterType<LogService>().As<ILogger>();

            //Register SignalR Hub
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            //builder.RegisterType<ChatHub>().ExternallyOwned();

            //Register MVC Controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //Register WebApi Controllers
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());

            var container = builder.Build();
            app.UseAutofacMiddleware(container);
            return container;
        }
    }
public class WebApiConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container, HttpConfiguration config)
        {
            // Set the dependency resolver for Web API.
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            config.DependencyResolver = webApiResolver;

            //Configure Action Injection
            //config.InjectInterfacesIntoActions();

            app.UseAutofacWebApi(config);
        }
    }
  public static class SignalRConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            //var config = new HubConfiguration();
            //config.Resolver = new AutofacDependencyResolver(container);
            //config.EnableDetailedErrors = true;

            //app.MapSignalR("/signalr", config);

            app.Map("/signalr", map =>
            {
                map.UseAutofacMiddleware(container);

                var hubConfiguration = new HubConfiguration
                {
                    Resolver = new AutofacDependencyResolver(container),
                    EnableDetailedErrors = true
                };

                map.RunSignalR(hubConfiguration);
            });
        }
    }
public class MvcConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            var mvcResolver = new Autofac.Integration.Mvc.AutofacDependencyResolver(container);
            DependencyResolver.SetResolver(mvcResolver);

            app.UseAutofacMvc();
        }
    }
namespace PNAME.BotServices.NotificationCenter.SignalR
{
    [HubName("ChatHub")]
    public class ChatHub : Hub
    {
        private ILogger _logger;
        //private IChatMessageServices _chatMessageServices;
        private readonly ILifetimeScope _hubLifetimeScope;

        public ChatHub(ILifetimeScope lifetimeScope)
        {
            // Create a lifetime scope for the hub.
            _hubLifetimeScope = lifetimeScope.BeginLifetimeScope("AutofacWebRequest");

            // Resolve dependencies from the hub lifetime scope.
            _logger = _hubLifetimeScope.Resolve<ILogger>();
           // _chatMessageServices = _hubLifetimeScope.Resolve<IChatMessageServices>();

        }

        public bool SendMessage(INotificationMessage notificationMessage)
        {
           //Some code here
        }
        public override Task OnConnected()
        {
            //Some code here
        }
        public override Task OnReconnected()
        {
             //Some code here
        }
        public async Task UpdateStatus(int messageId, int ServerId, StatusType status)
        {
             //Some code here
        }

        protected override void Dispose(bool disposing)
        {
            // Dispose the hub lifetime scope when the hub is disposed.
            if (disposing && _hubLifetimeScope != null)
            {
                _hubLifetimeScope.Dispose();
            }

            base.Dispose(disposing);
        }

    }
}
信号配置.cs

[assembly: OwinStartupAttribute(typeof(PNAME.WebUI.Startup))]
namespace PNAME.WebUI
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            // Register Routes
            WebApiConfig.Register(config);

            // Register dependencies
            //ConfigureDependencies(app, config);
            var container = DependencyConfiguration.Configure(app);
            SignalRConfiguration.Configure(app, container);
            MvcConfiguration.Configure(app, container);
            WebApiConfiguration.Configure(app, container, config);
            // Configure Authentication middleware
            ConfigureAuth(app, config);

            // configure Web API 
            app.UseWebApi(config);
        }
    }
}
  public static class DependencyConfiguration
    {
        public static IContainer Configure(IAppBuilder app)
        {
            var builder = new ContainerBuilder();


            //Register any other components required by your code....
            builder.RegisterType<MainContext>().As<IApplicationDbContext>();

            builder.RegisterType<OneSignalNotificationService>().As<IPushNotificationService>();

            builder.RegisterType<LogService>().As<ILogger>();

            //Register SignalR Hub
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            //builder.RegisterType<ChatHub>().ExternallyOwned();

            //Register MVC Controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //Register WebApi Controllers
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());

            var container = builder.Build();
            app.UseAutofacMiddleware(container);
            return container;
        }
    }
public class WebApiConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container, HttpConfiguration config)
        {
            // Set the dependency resolver for Web API.
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            config.DependencyResolver = webApiResolver;

            //Configure Action Injection
            //config.InjectInterfacesIntoActions();

            app.UseAutofacWebApi(config);
        }
    }
  public static class SignalRConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            //var config = new HubConfiguration();
            //config.Resolver = new AutofacDependencyResolver(container);
            //config.EnableDetailedErrors = true;

            //app.MapSignalR("/signalr", config);

            app.Map("/signalr", map =>
            {
                map.UseAutofacMiddleware(container);

                var hubConfiguration = new HubConfiguration
                {
                    Resolver = new AutofacDependencyResolver(container),
                    EnableDetailedErrors = true
                };

                map.RunSignalR(hubConfiguration);
            });
        }
    }
public class MvcConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            var mvcResolver = new Autofac.Integration.Mvc.AutofacDependencyResolver(container);
            DependencyResolver.SetResolver(mvcResolver);

            app.UseAutofacMvc();
        }
    }
namespace PNAME.BotServices.NotificationCenter.SignalR
{
    [HubName("ChatHub")]
    public class ChatHub : Hub
    {
        private ILogger _logger;
        //private IChatMessageServices _chatMessageServices;
        private readonly ILifetimeScope _hubLifetimeScope;

        public ChatHub(ILifetimeScope lifetimeScope)
        {
            // Create a lifetime scope for the hub.
            _hubLifetimeScope = lifetimeScope.BeginLifetimeScope("AutofacWebRequest");

            // Resolve dependencies from the hub lifetime scope.
            _logger = _hubLifetimeScope.Resolve<ILogger>();
           // _chatMessageServices = _hubLifetimeScope.Resolve<IChatMessageServices>();

        }

        public bool SendMessage(INotificationMessage notificationMessage)
        {
           //Some code here
        }
        public override Task OnConnected()
        {
            //Some code here
        }
        public override Task OnReconnected()
        {
             //Some code here
        }
        public async Task UpdateStatus(int messageId, int ServerId, StatusType status)
        {
             //Some code here
        }

        protected override void Dispose(bool disposing)
        {
            // Dispose the hub lifetime scope when the hub is disposed.
            if (disposing && _hubLifetimeScope != null)
            {
                _hubLifetimeScope.Dispose();
            }

            base.Dispose(disposing);
        }

    }
}
MVC配置.cs

[assembly: OwinStartupAttribute(typeof(PNAME.WebUI.Startup))]
namespace PNAME.WebUI
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            // Register Routes
            WebApiConfig.Register(config);

            // Register dependencies
            //ConfigureDependencies(app, config);
            var container = DependencyConfiguration.Configure(app);
            SignalRConfiguration.Configure(app, container);
            MvcConfiguration.Configure(app, container);
            WebApiConfiguration.Configure(app, container, config);
            // Configure Authentication middleware
            ConfigureAuth(app, config);

            // configure Web API 
            app.UseWebApi(config);
        }
    }
}
  public static class DependencyConfiguration
    {
        public static IContainer Configure(IAppBuilder app)
        {
            var builder = new ContainerBuilder();


            //Register any other components required by your code....
            builder.RegisterType<MainContext>().As<IApplicationDbContext>();

            builder.RegisterType<OneSignalNotificationService>().As<IPushNotificationService>();

            builder.RegisterType<LogService>().As<ILogger>();

            //Register SignalR Hub
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            //builder.RegisterType<ChatHub>().ExternallyOwned();

            //Register MVC Controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //Register WebApi Controllers
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());

            var container = builder.Build();
            app.UseAutofacMiddleware(container);
            return container;
        }
    }
public class WebApiConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container, HttpConfiguration config)
        {
            // Set the dependency resolver for Web API.
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            config.DependencyResolver = webApiResolver;

            //Configure Action Injection
            //config.InjectInterfacesIntoActions();

            app.UseAutofacWebApi(config);
        }
    }
  public static class SignalRConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            //var config = new HubConfiguration();
            //config.Resolver = new AutofacDependencyResolver(container);
            //config.EnableDetailedErrors = true;

            //app.MapSignalR("/signalr", config);

            app.Map("/signalr", map =>
            {
                map.UseAutofacMiddleware(container);

                var hubConfiguration = new HubConfiguration
                {
                    Resolver = new AutofacDependencyResolver(container),
                    EnableDetailedErrors = true
                };

                map.RunSignalR(hubConfiguration);
            });
        }
    }
public class MvcConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            var mvcResolver = new Autofac.Integration.Mvc.AutofacDependencyResolver(container);
            DependencyResolver.SetResolver(mvcResolver);

            app.UseAutofacMvc();
        }
    }
namespace PNAME.BotServices.NotificationCenter.SignalR
{
    [HubName("ChatHub")]
    public class ChatHub : Hub
    {
        private ILogger _logger;
        //private IChatMessageServices _chatMessageServices;
        private readonly ILifetimeScope _hubLifetimeScope;

        public ChatHub(ILifetimeScope lifetimeScope)
        {
            // Create a lifetime scope for the hub.
            _hubLifetimeScope = lifetimeScope.BeginLifetimeScope("AutofacWebRequest");

            // Resolve dependencies from the hub lifetime scope.
            _logger = _hubLifetimeScope.Resolve<ILogger>();
           // _chatMessageServices = _hubLifetimeScope.Resolve<IChatMessageServices>();

        }

        public bool SendMessage(INotificationMessage notificationMessage)
        {
           //Some code here
        }
        public override Task OnConnected()
        {
            //Some code here
        }
        public override Task OnReconnected()
        {
             //Some code here
        }
        public async Task UpdateStatus(int messageId, int ServerId, StatusType status)
        {
             //Some code here
        }

        protected override void Dispose(bool disposing)
        {
            // Dispose the hub lifetime scope when the hub is disposed.
            if (disposing && _hubLifetimeScope != null)
            {
                _hubLifetimeScope.Dispose();
            }

            base.Dispose(disposing);
        }

    }
}
至于
ChatHub
its位于另一个项目中,作为类库,具有不同的
名称空间
,如下所示

ChatHub.cs

[assembly: OwinStartupAttribute(typeof(PNAME.WebUI.Startup))]
namespace PNAME.WebUI
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            // Register Routes
            WebApiConfig.Register(config);

            // Register dependencies
            //ConfigureDependencies(app, config);
            var container = DependencyConfiguration.Configure(app);
            SignalRConfiguration.Configure(app, container);
            MvcConfiguration.Configure(app, container);
            WebApiConfiguration.Configure(app, container, config);
            // Configure Authentication middleware
            ConfigureAuth(app, config);

            // configure Web API 
            app.UseWebApi(config);
        }
    }
}
  public static class DependencyConfiguration
    {
        public static IContainer Configure(IAppBuilder app)
        {
            var builder = new ContainerBuilder();


            //Register any other components required by your code....
            builder.RegisterType<MainContext>().As<IApplicationDbContext>();

            builder.RegisterType<OneSignalNotificationService>().As<IPushNotificationService>();

            builder.RegisterType<LogService>().As<ILogger>();

            //Register SignalR Hub
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            //builder.RegisterType<ChatHub>().ExternallyOwned();

            //Register MVC Controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //Register WebApi Controllers
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());

            var container = builder.Build();
            app.UseAutofacMiddleware(container);
            return container;
        }
    }
public class WebApiConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container, HttpConfiguration config)
        {
            // Set the dependency resolver for Web API.
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            config.DependencyResolver = webApiResolver;

            //Configure Action Injection
            //config.InjectInterfacesIntoActions();

            app.UseAutofacWebApi(config);
        }
    }
  public static class SignalRConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            //var config = new HubConfiguration();
            //config.Resolver = new AutofacDependencyResolver(container);
            //config.EnableDetailedErrors = true;

            //app.MapSignalR("/signalr", config);

            app.Map("/signalr", map =>
            {
                map.UseAutofacMiddleware(container);

                var hubConfiguration = new HubConfiguration
                {
                    Resolver = new AutofacDependencyResolver(container),
                    EnableDetailedErrors = true
                };

                map.RunSignalR(hubConfiguration);
            });
        }
    }
public class MvcConfiguration
    {
        public static void Configure(IAppBuilder app, IContainer container)
        {
            var mvcResolver = new Autofac.Integration.Mvc.AutofacDependencyResolver(container);
            DependencyResolver.SetResolver(mvcResolver);

            app.UseAutofacMvc();
        }
    }
namespace PNAME.BotServices.NotificationCenter.SignalR
{
    [HubName("ChatHub")]
    public class ChatHub : Hub
    {
        private ILogger _logger;
        //private IChatMessageServices _chatMessageServices;
        private readonly ILifetimeScope _hubLifetimeScope;

        public ChatHub(ILifetimeScope lifetimeScope)
        {
            // Create a lifetime scope for the hub.
            _hubLifetimeScope = lifetimeScope.BeginLifetimeScope("AutofacWebRequest");

            // Resolve dependencies from the hub lifetime scope.
            _logger = _hubLifetimeScope.Resolve<ILogger>();
           // _chatMessageServices = _hubLifetimeScope.Resolve<IChatMessageServices>();

        }

        public bool SendMessage(INotificationMessage notificationMessage)
        {
           //Some code here
        }
        public override Task OnConnected()
        {
            //Some code here
        }
        public override Task OnReconnected()
        {
             //Some code here
        }
        public async Task UpdateStatus(int messageId, int ServerId, StatusType status)
        {
             //Some code here
        }

        protected override void Dispose(bool disposing)
        {
            // Dispose the hub lifetime scope when the hub is disposed.
            if (disposing && _hubLifetimeScope != null)
            {
                _hubLifetimeScope.Dispose();
            }

            base.Dispose(disposing);
        }

    }
}
名称空间PNAME.BotServices.NotificationCenter.signer
{
[聊天室名称(“聊天室”)]
公共类聊天室:聊天室
{
私人ILogger_记录器;
//私人IChatMessageServices(聊天信息服务);
专用只读ILifetimeScope\u hubLifetimeScope;
公共聊天中心(ILifetimeScope生存时间范围)
{
//为中心创建生存期范围。
_hubLifetimeScope=lifetimeScope.BeginLifetimeScope(“AutofacWebRequest”);
//解析集线器生存期范围中的依赖项。
_记录器=_hubLifetimeScope.Resolve();
//_chatMessageServices=_hubLifetimeScope.Resolve();
}
公共bool发送消息(INotificationMessage notificationMessage)
{
//这里有一些代码
}
已连接的公用覆盖任务()
{
//这里有一些代码
}
已重新连接的公用覆盖任务()
{
//这里有一些代码
}
公共异步任务更新状态(int-messageId、int-ServerId、StatusType-status)
{
//这里有一些代码
}
受保护的覆盖无效处置(布尔处置)
{
//处置集线器时,处置集线器生存期范围。
if(处理和&&U hubLifetimeScope!=null)
{
_hubLifetimeScope.Dispose();
}
基地。处置(处置);
}
}
}
这就是所有的配置

正如我在MVC和API中所说的,控制器在使用仅DI的信号器时工作良好,没有从客户端连接,并且出现以下错误

Microsoft.AspNet.SignalR.Client.HttpClientException: StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Transfer-Encoding: chunked
  X-SourceFiles: =?UTF-8?B?RDpcUHJvamVjdHNcQk9UUmVwb1xCT1Rcc2lnbmFsclxuZWdvdGlhdGU=?=
  Cache-Control: private
  Date: Sat, 28 Dec 2019 20:43:45 GMT
  Server: Microsoft-IIS/10.0
  X-AspNet-Version: 4.0.30319
  X-Powered-By: ASP.NET
  Content-Type: text/html; charset=utf-8
}
   at Microsoft.AspNet.SignalR.Client.Http.DefaultHttpClient.<>c__DisplayClass5_0.<Get>b__1(HttpResponseMessage responseMessage)
   at Microsoft.AspNet.SignalR.TaskAsyncHelper.<>c__DisplayClass31_0`2.<Then>b__0(Task`1 t)
   at Microsoft.AspNet.SignalR.TaskAsyncHelper.TaskRunners`2.<>c__DisplayClass3_0.<RunTask>b__0(Task`1 t)
Microsoft.AspNet.signal.Client.HttpClientException:StatusCode:500,原因短语:“内部服务器错误”,版本:1.1,内容:System.Net.Http.StreamContent,标题:
{
传输编码:分块
X-SourceFiles:=?UTF-8?B?RDPCUHJVAMVJDHNCK9UUMVWB1XCT1RCC2LNBMFSCLXUZWDVDGLHDGU==
缓存控制:专用
日期:2019年12月28日星期六20:43:45 GMT
服务器:Microsoft IIS/10.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
内容类型:text/html;字符集=utf-8
}
在Microsoft.AspNet.signar.Client.Http.DefaultHttpClient.c__显示Class5_0.b__1(HttpResponseMessage responseMessage)
在Microsoft.AspNet.signal.TaskAsyncHelper.c_uuuu中显示Class31_0`2.b_u0(任务`1t)
在Microsoft.AspNet.signal.TaskAsyncHelper.TaskRunners`2.c\uuu显示Class3\u0.b\u0(任务`1t)

不知道我在这个配置中遗漏了什么。

问题是在将中心名称更改为“MyChatHub”后,中心名称出现了问题。依赖项注入的每件事情都很好

您只显示异常的堆栈跟踪。你有错误信息吗?能否附加调试器以捕获异常并获取完整消息?调试器中未显示错误。尝试从javascript应用程序连接到集线器后,控制台中会显示错误,这是由于Chathub名称中存在重复项造成的。因此,更改中心名称解决了问题。谢谢