ASP.NET MVC和IIS - Sequence不包含匹配元素

时间:2013-03-31 12:14:44

标签: asp.net asp.net-mvc iis xsockets.net

我有一个用ASP.NET MVC编写的Web应用程序。一切都还可以,在visual studio app工作得很好,但是一旦我把它放在IIS服务器上,就会给我这个错误: Sequence contains no matching element

这是它给我的堆栈跟踪:

  

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

     

[HttpException(0x80004005):序列不包含匹配元素]
  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 个答案:

答案 0 :(得分:1)

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

但是,下面的工作表应该可行(刚才很快就进行了测试)。

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

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

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

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

    此致 Uffe

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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