自从早期版本开始使用SignalR并一路升级之后,我将应用程序部署到了Windows Server 2008 R2生产服务器,现在应用程序因“Hub无法解析”而崩溃。例外。SignalR请求投掷“Hub无法解决。”
编辑:堆栈跟踪新增:
[InvalidOperationException: 'stockitems' Hub could not be resolved.]
Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.EnsureHub(IHubManager hubManager, String hubName, IPerformanceCounter[] counters) +426
Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Initialize(IDependencyResolver resolver, HostContext context) +716
Microsoft.AspNet.SignalR.Owin.CallHandler.Invoke(IDictionary`2 environment) +1075
Microsoft.AspNet.SignalR.Owin.Handlers.HubDispatcherHandler.Invoke(IDictionary`2 environment) +363
Microsoft.Owin.Host.SystemWeb.OwinCallContext.Execute() +68
Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object extraData) +414
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
Microsoft.Owin.Host.SystemWeb.CallContextAsyncResult.End(IAsyncResult result) +146
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
在我的dev的机器和本地测试服务器我越来越没有问题。
有问题的中心是非常简单的:
[HubName("StockItems")]
public class StockItemHub : Hub
{
}
原本我以为这是与HubName的问题,所以删除了,但它仍然炸弹了。
原本我以为这是由于依赖注入,所以我再改变了我的Global.asax看起来如下:
var signalRResolver = new SignalRDependencyResolver();
GlobalHost.DependencyResolver = signalRResolver;
var configuration = new HubConfiguration { Resolver = signalRResolver };
RouteTable.Routes.MapHubs(configuration);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters, config.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
编辑:什么是SignalRDependencyResolver? SignalRDependencyResolver在我试图解决这个问题之前并不存在。因为我认为它是一个依赖注入问题,所以我用DefaultDependencyResolver覆盖了GetService和GetServices,首先检查我的Ninject内核的类型,如果不回退到DefaultDependencyResolver
任何想法?
服务器运行IIS7,Windows Server 2008中使用.NET 4.5 的应用程序是一个MVC 4 .NET 4.5
检查此堆栈线程http://stackoverflow.com/questions/12494355/signalr-dependency-injection-via-spring-net –
什么是SignalRDependencyResolver – davidfowl
**在哪里**异常发生在什么stacktrace?完整的错误信息很重要。 – usr