C# &引用;'中的服务器错误/';应用序列不包含任何元素”;重构名称空间后

C# &引用;'中的服务器错误/';应用序列不包含任何元素”;重构名称空间后,c#,asp.net-mvc,asp.net-mvc-4,ninject,C#,Asp.net Mvc,Asp.net Mvc 4,Ninject,我将MVC4和Ninject 3与应用程序开始文件夹中的NinjectWebCommon一起使用 我的Global.asax.cs是mvcapapplication:HttpApplication 我得到下面的错误是因为Ninject启动了两次-为什么 Server Error in '/' Application. Sequence contains no elements Description: An unhandled exception occurred during the ex

我将MVC4和Ninject 3与应用程序开始文件夹中的NinjectWebCommon一起使用

我的Global.asax.cs是mvcapapplication:HttpApplication

我得到下面的错误是因为Ninject启动了两次-为什么

Server Error in '/' Application.

Sequence contains no elements

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Sequence contains no elements

Source Error: 


Line 50:             kernelInstance = createKernelCallback();
Line 51: 
Line 52:             kernelInstance.Components.GetAll<INinjectHttpApplicationPlugin>().Map(c => c.Start());
Line 53:             kernelInstance.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
Line 54:             kernelInstance.Inject(this);

Source File: c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs    Line: 52 

Stack Trace: 


[InvalidOperationException: Sequence contains no elements]
   System.Linq.Enumerable.Single(IEnumerable`1 source) +315
   Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start() in c:\Projects\Ninject\ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\NinjectMvcHttpApplicationPlugin.cs:53
   Ninject.Web.Common.Bootstrapper.<Initialize>b__0(INinjectHttpApplicationPlugin c) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:52
   Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable`1 series, Action`1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:32
   Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:52
   Company.App.App_Start.NinjectWebCommon.Start() in c:\Development\Company\trunk\src\App\App_Start\NinjectWebCommon.cs:29

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +192
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +108
   System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +19
   WebActivator.BaseActivationMethodAttribute.InvokeMethod() +236
   WebActivator.ActivationManager.RunActivationMethods() +534
   WebActivator.ActivationManager.RunPreStartMethods() +41
   WebActivator.ActivationManager.Run() +64

[InvalidOperationException: The pre-application start initialization method Run on type WebActivator.ActivationManager threw an exception with the following error message: Exception has been thrown by the target of an invocation..]
   System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +550
   System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +132
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +90
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +135
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): The pre-application start initialization method Run on type WebActivator.ActivationManager threw an exception with the following error message: Exception has been thrown by the target of an invocation..]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9874568
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18044
“/”应用程序中出现服务器错误。 序列不包含任何元素 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:System.InvalidOperationException:序列不包含任何元素 源错误: 第50行:kernelInstance=createKernelCallback(); 第51行: 第52行:kernelInstance.Components.GetAll().Map(c=>c.Start()); 第53行:kernelInstance.Bind().To(); 第54行:kernelInstance.Inject(this); 源文件:c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs行:52 堆栈跟踪: [无效操作异常:序列不包含任何元素] 系统。Linq。可枚举。单个(IEnumerable`1源)+315 c:\Projects\Ninject\Ninject.Web.Mvc\mvc3\src\Ninject.Web.Mvc\Ninject\ninjectmvchttpplicationplugin.Start()中的Ninject.Web.Mvc.ninjectmvchttpplicationplugin.Start() c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Common\Bootstrapper.cs中的Ninject.Web.Common.Bootstrapper.b_u0(InInInInjectHttpApplication插件c):52 c:\Projects\Ninject\Ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.Map(IEnumerable`1系列,Action`1 Action)中的Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable`1系列,Action`1 Action) c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Common\Bootstrapper.cs:52中的Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback) c:\Development\Company\trunk\src\App\App\u Start\NinjectWebCommon.Start()中的Company.App.App.App\u Start.NinjectWebCommon.Start() [TargetInvocationException:调用的目标已引发异常。] System.RuntimeMethodHandle.InvokeMethod(对象目标、对象[]参数、签名符号、布尔构造函数)+0 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象obj,对象[]参数,对象[]参数)+192 System.Reflection.RuntimeMethodInfo.Invoke(对象obj、BindingFlags invokeAttr、Binder Binder、对象[]参数、CultureInfo区域性)+108 System.Reflection.MethodBase.Invoke(对象obj,对象[]参数)+19 WebActivator.BaseActivationMethodAttribute.InvokeMethod()+236 WebActivator.ActivationManager.RunActivationMethods()+534 WebActivator.ActivationManager.RunPreStartMethods()+41 WebActivator.ActivationManager.Run()+64 [InvalidOperationException:在WebActivator.ActivationManager类型上运行的预应用程序启动初始化方法引发了异常,并显示以下错误消息:调用的目标已引发异常..] System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1方法,Func`1设置主机环境文化)+550 System.Web.Compilation.BuildManager.InvokePrestartinethods(ICollection`1方法)+132 System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串preStartInitListPath)+90 System.Web.Compilation.BuildManager.ExecuteRepapStart()+135 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager、IAApplicationHost appHost appHost、IConfigMapPathFactory configMapPathFactory、HostingEnvironmentParameters hostingParameters、PolicyLevel PolicyLevel、Exception appDomainCreationException)+516 [HttpException(0x80004005):在WebActivator.ActivationManager类型上运行的应用程序启动前初始化方法引发了异常,并显示以下错误消息:异常已由调用的目标引发..] System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+9874568 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文)+254 版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.18044
这是我重构名称空间和二进制名称时造成的

这意味着具有旧名称的dll的旧副本仍在bin文件夹中

这意味着两个dll都在启动时被激活


AClean没有删除它,所以我手动删除了它,问题就消失了。

我遇到了这个问题,花了几个小时在互联网上尝试各种建议。最终解决这个问题的方法是在我的项目中检查跨名称空间的循环引用。查看您的.csproj文件,检查所有引用是否正确

对于我来说,我不小心将ninject安装到了一个非web项目中,将其从我的数据项目中删除为我解决了这个问题。

非常感谢您的帮助。然而,我不仅必须删除Bin文件夹,还必须运行磁盘清理来构建web项目;我猜想它是在临时存储中使用旧文件。对我来说也是一样,我也有同样的问题,没有其他解决方案可以工作。+1部署到多个具有相同问题的服务器。我还重命名了一个名称空间/程序集。我清理了一个项目,从“发布到服务器”文件夹中删除了整个项目,然后重新发布。工作得很有魅力!旧答案,但现在仍然有用:)在我的例子中,我重命名了名称空间/二进制文件,并将其部署到应用程序服务上现有的Azure“暂存”槽中,该槽中仍有旧版本的二进制文件。删除临时槽并重新创建它意味着下一次部署从头开始创建了所有内容,然后问题得到了解决。