我有一个用ASP.NET MVC编写的Web应用程序 . 一切都还可以,在visual studio app中运行得很好,但是只要我把它放在IIS服务器上,它就会给我这个错误: Sequence contains no matching element
.
这是它给我的堆栈跟踪:
[InvalidOperationException:Sequence不包含匹配的元素] System.Linq.Enumerable.Single(IEnumerable1 source,Func2 predicate)4134530 XSockets.Plugin.Framework.Helpers.PluginHelpers.GetInstance(ImportedType importedType)143 XSockets.Plugin.Framework.Composable.Compose (T obj)656 XSocketsServer..ctor()170 Scyk.MvcApplication.Application_Start()173 [HttpException(0x80004005):Sequence包含无匹配元素] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)12864673 System.Web .HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)175 System.Web.HttpApplication.InitSpecial(HttpApplicationState state,MethodInfo [] handlers,IntPtr appContext,HttpContext context)304 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext) ,HttpContext context)404 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr app上下文)475 [HttpException(0x80004005):Sequence不包含匹配元素] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)12881540 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)12722601
有人能帮我一下吗?我不知道出了什么问题,特别是当视觉工作室的一切都好的时候......
编辑:我的App_Start():
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
new XSocketsServer();
}
我在那里启动xsockets服务器,但无论如何,如果我注释掉这个XSocketsServer,它仍然会给我同样的错误 .
3 回答
我设法重现错误 . 如果在启动调试器之前未选择“重建解决方案”,则似乎会发生这种情况 . 我无法回答你是如何在带有预编译程序集的IIS上得到错误的...
但是,下面的工作表应该可行(刚刚测试它很快) .
Install-Package WebActivator -Version 1.5.3
使用PostApplicationStartMethod在App_Start运行后启动服务器 .
而 class ......
编辑:在公共网站上添加了关于它的说明:WorkAround
问候Uffe
应用程序池是否处于集成模式?
检查您是否正在调试32位或64位以及如何设置服务器 . 如果服务器运行64位,您可能必须启用32位应用程序才能“到达”您的第三方dll .