asp.net-mvc – SignalR无法从外部程序集中找到集线器
发布时间:2020-12-16 09:39:24 所属栏目:asp.Net 来源:网络整理
导读:我编写小型Web应用程序,并希望使用signalr来创建推送通知,但是当我从其他程序集加载集线器时,什么都不会发生. 这是我的程序集定位器,来自引用我的asp.net mvc项目的其他库 public class HubAssemblyLocator : IAssemblyLocator { public IListAssembly GetAs
我编写小型Web应用程序,并希望使用signalr来创建推送通知,但是当我从其他程序集加载集线器时,什么都不会发生.
这是我的程序集定位器,来自引用我的asp.net mvc项目的其他库 public class HubAssemblyLocator : IAssemblyLocator { public IList<Assembly> GetAssemblies() { IList<Assembly> allAsms = BuildManager.GetReferencedAssemblies().Cast<Assembly>().ToList(); var executingDirectory = AppDomain.CurrentDomain.BaseDirectory; var assemblyFiles = Directory.EnumerateFiles( executingDirectory,"Application" ); foreach ( var assemblyFile in assemblyFiles.Where( _ => _.EndsWith( ".dll" ) ) ) { var asm = Assembly.LoadFile( assemblyFile ); if ( asm.GetTypes().Any( _ => _.BaseType == typeof( Hub ) ) ) { allAsms.Add( asm ); } } return allAsms; } } 这是我在Global.asax中的ApplicationStart事件 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register( GlobalConfiguration.Configuration ); FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters ); RouteConfig.RegisterRoutes( RouteTable.Routes ); InitializeRepositories.Initialize(); var servicesPre = GlobalHost.DependencyResolver.GetServices( typeof( IAssemblyLocator ) ); RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true}); GlobalHost.DependencyResolver.Register( typeof( IAssemblyLocator ),() => new HubAssemblyLocator() ); var servicesPost = GlobalHost.DependencyResolver.GetServices(typeof (IAssemblyLocator)); } } 在这个问题上这个问题解决了,但在我的情况下是行不通的. SignalR IAssemblyLocator not fired 在我的情况下,程序集定位器没有执行. 更新:只需在区域和路线注册之前注册集线器. 解决方法
应该在RegisterRoutes()之前调用RouteTable.Routes.MapHubs(),但是在您的Application_Start中调用它.您也可以在调用MapHubs()之后注册HubAssemblyLocator,但逻辑上它应该在之前.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC的Windows Azure存储模拟器连接
- asp.net-mvc-3 – URL.Action在构造URL时包含id
- asp.net-mvc-2 – 覆盖“Html.EditorFor”上的类
- 使用asp.net FtpWebRequest 实现FTP常用功能
- ASP.NET CORE(C#)与Spring Boot MVC(JAVA)
- asp.net-mvc-3 – 实体框架,MVC 3,LINQ To Entities中的Ord
- MVC学习一:EF
- asp.net-mvc-4 – ASP.NET MVC 4自定义权限属性 – 如何将未
- asp.net-mvc – 为什么Visual Studio 2010混合了System.Web
- .net – Application_Error不会触发?
推荐文章
站长推荐
- asp.net-web-api – 从局域网中的其他计算机使用
- asp.net-mvc – 在数据库中存储ASP.Net MVC视图
- asp.net – 在同一个域上的两个网站之间共享cook
- asp.net-mvc-3 – HTML.CheckBox MVC3的相同名称
- 将下拉列表绑定到详细信息视图的下载列表ASP.NET
- ASP.NET 5中的全局异常处理
- asp.net-mvc – ASP.NET MVC,Nhibernate和小型/中
- asp.net-mvc – BestPractices:在MVC-Controlle
- asp.net – 无法弄清楚如何将我的NON-MVC站点从s
- 用于ASP.NET工作示例的Youtube API v3
热点阅读