2013-03-31 48 views
0

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

这是堆栈跟踪,它给我:

[InvalidOperationException: Sequence contains no matching element]
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): Sequence contains no matching element]
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 appContext) +475

[HttpException (0x80004005): Sequence contains no matching element]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12881540 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12722601

谁能帮助我在这里?我不知道什么是错的,尤其是当一切都在Visual Studio好吗?

编辑:我App_Start():

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
    new XSocketsServer(); 
} 

我开始xsockets在那里的服务器,但不管怎么说,如果我注释掉这个XSocketsServer,它仍然给我同样的错误。

+0

至少需要发布你的'Scyk.MvcApplication.Application_Start()'...但基于例外,我想有些DLL在服务器上发送。确保Bin目录在服务器上和本地包含相同的文件。你还应该检查'XSockets'使用的插件。 – nemesv

+0

@nemesv:因为我在visual studio上发布了所有东西,所以它不应该包含任何东西,所以它应该包含所有东西。 – ojek

+0

你使用的是什么版本的XSockets?猜测2.3? – Uffe

回答

1

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

但是,下面的workardound应该工作(刚刚测试它)。

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

    [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

0

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

+0

设置配置文件是什么?为什么这很重要? – ojek

+0

它是IIS中两种管道模式(处理模式)之一(另一种是经典的,这是之前的IIS7),ASP.NET MVC需要一个带有集成管道模式的应用程序池。在堆栈跟踪中:EnsureAppStartCalledForIntegratedMode –

0

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

相关问题