序列不包含匹配的元素

我有一个用ASP.NET MVC编写的Web应用程序。 一切都好,在Visual Studio应用程序工作得很好,但只要我把它放在IIS服务器上,它给了我这个错误: Sequence contains no matching element

这是它给我的堆栈跟踪:

[InvalidOperationException:序列不包含匹配的元素]
System.Linq.Enumerable.Single(IEnumerable 1 source, Func 2 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):序列不包含匹配元素]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext上下文,HttpApplication应用程序)+12864673
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext上下文,MethodInfo []处理程序)+175
System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+304
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext上下文)+404
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+475

[HttpException(0x80004005):序列不包含匹配元素]
System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+12881540 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文)+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,它仍然会给我同样的错误。


我设法重现了这个错误。 如果在启动调试器之前没有选择“重建解决方案”,这似乎就会发生。 我不能回答你如何得到带有预编译程序集的IIS上的错误......

但是,下面的解决方法应该可以工作(现在快速测试它)。

  • 安装包WebActivator -Version 1.5.3
  • 在App_Start运行后,使用PostApplicationStartMethod启动服务器。

    [assembly: WebActivator.PostApplicationStartMethod(typeof(MyApplication.App_Start.XSocketsStart), "Start")]
    
  • 和班级...

    namespace MyApplication.App_Start
    {
        public static class XSocketsStart
        {
            public static void Start()
            {
                //Start the server.... In this case named Instance.
                new Instance();
            }
        }
    }
    

    编辑:在公共网站上添加了关于它的注释:WorkAround

    问候Uffe


    应用程序池是否处于集成模式?


    检查是否正在调试为32位或64位以及如何设置服务器。 如果服务器运行64位,您可能必须启用32位应用程序才能“到达”您的第三方DLL。

    链接地址: http://www.djcxy.com/p/38861.html

    上一篇: Sequence contains no matching element

    下一篇: How do I install ASP.NET MVC 5 in Visual Studio 2012?