C# Ninject上的错误:序列不包含元素

C# Ninject上的错误:序列不包含元素,c#,.net,azure,ninject,publish,C#,.net,Azure,Ninject,Publish,此错误仅在我在Azure服务器上发布时出现: 序列不包含任何元素 我不确定这个错误是因为Ninject。我尝试过所有提示,但都有类似的错误,但这似乎是一个一般性错误。 我尝试在多台计算机上运行相同的代码,但此错误并非仅在公共Azure上运行时才会发生。 如果你经历了一些事情,并且能够提供帮助,非常感谢 堆栈跟踪: [InvalidOperationException: Sequence contains no elements] System.Linq.Enumerable.Single

此错误仅在我在Azure服务器上发布时出现:
序列不包含任何元素

我不确定这个错误是因为Ninject。我尝试过所有提示,但都有类似的错误,但这似乎是一个一般性错误。
我尝试在多台计算机上运行相同的代码,但此错误并非仅在公共Azure上运行时才会发生。
如果你经历了一些事情,并且能够提供帮助,非常感谢

堆栈跟踪

[InvalidOperationException: Sequence contains no elements] 
   System.Linq.Enumerable.Single(IEnumerable`1 source) +311
   Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start() +44
   Ninject.Web.Common.Bootstrapper.<Initialize>b__0(INinjectHttpApplicationPlugin c) +8
   Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable`1 series, Action`1 action) +130
   Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback) +140
   Splora.SploraV1.UI.Web.NinjectWebCommon.Start() +102

[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) +136
   WebActivatorEx.BaseActivationMethodAttribute.InvokeMethod() +73
   WebActivatorEx.ActivationManager.RunActivationMethods(Boolean designerMode) +350
   WebActivatorEx.ActivationManager.Run() +78

[InvalidOperationException: The pre-application start initialization method Run on type WebActivatorEx.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) +613
   System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +141
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +159
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +157
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +656

[HttpException (0x80004005): The pre-application start initialization method Run on type WebActivatorEx.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) +4531288
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +94
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +191   
[无效操作异常:序列不包含元素]
System.Linq.Enumerable.Single(IEnumerable`1源)+311
Ninject.Web.Mvc.ninjectmvchttpplicationplugin.Start()+44
Ninject.Web.Common.Bootstrapper.b_u0(InInjectHttpApplication插件c)+8
Ninject.Infrastructure.Language.ExtensionsforIEnumerableSoft.Map(IEnumerable`1系列,Action`1 Action)+130
Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback)+140
Splora.SploraV1.UI.Web.NinjectWebCommon.Start()+102
[TargetInvocationException:调用的目标已引发异常。]
System.RuntimeMethodHandle.InvokeMethod(对象目标、对象[]参数、签名符号、布尔构造函数)+0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象obj,对象[]参数,对象[]参数)+192
System.Reflection.RuntimeMethodInfo.Invoke(对象obj、BindingFlags invokeAttr、Binder Binder、对象[]参数、CultureInfo区域性)+136
WebActivateX.BaseActivationMethodAttribute.InvokeMethod()+73
WebActivateX.ActivationManager.RunActivationMethods(布尔设计模式)+350
WebActivatorEx.ActivationManager.Run()+78
[InvalidOperationException:在WebActivatorEx.ActivationManager类型上运行的应用程序启动前初始化方法引发异常,并显示以下错误消息:调用目标已引发异常..]
System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1方法,Func`1设置主机环境文化)+613
System.Web.Compilation.BuildManager.invokePrestartinethods(ICollection`1方法)+141
System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串preStartInitListPath,布尔值&isRefAssemblyLoaded)+159
System.Web.Compilation.BuildManager.ExecuteRepapStart()+157
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager、IAApplicationHost appHost appHost、IConfigMapPathFactory configMapPathFactory、HostingEnvironmentParameters hostingParameters、PolicyLevel PolicyLevel、Exception appDomainCreationException)+656
[HttpException(0x80004005):在WebActivatex.ActivationManager类型上运行的应用程序启动前初始化方法引发了异常,并显示以下错误消息:异常已由调用的目标引发..]
System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+4531288
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+94
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequestWR,HttpContext上下文)+191


NinjectWebCommon.cs:

private static readonly Bootstrapper bootstrapper = new Bootstrapper();

    /// <summary>
    /// Starts the application
    /// </summary>
    public static void Start() 
    {
        DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
        DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
       bootstrapper.Initialize(CreateKernel);
    }

    /// <summary>
    /// Stops the application.
    /// </summary>
    public static void Stop()
    {
        bootstrapper.ShutDown();
    }

    /// <summary>
    /// Creates the kernel that will manage your application.
    /// </summary>
    /// <returns>The created kernel.</returns>
    private static IKernel CreateKernel()
    {
        var kernel = RegisterServices();
        try
        {
            kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
            kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

            return kernel;
        }
        catch
        {
            kernel.Dispose();
            throw;
        }
    }


    private static StandardKernel RegisterServices()
    {
        return new Container().GetModules();
    } 
private static readonly Bootstrapper Bootstrapper=new Bootstrapper();
/// 
///启动应用程序
/// 
公共静态void Start()
{
RegisterModule(typeof(OnePerRequestHttpModule));
RegisterModule(typeof(NinjectHttpModule));
初始化(CreateKernel);
}
/// 
///停止应用程序。
/// 
公共静态无效停止()
{
bootstrapper.ShutDown();
}
/// 
///创建将管理应用程序的内核。
/// 
///创建的内核。
私有静态IKernel CreateKernel()
{
var kernel=RegisterServices();
尝试
{
kernel.Bind().ToMethod(ctx=>()=>newbootstrapper().kernel);
kernel.Bind().To();
返回内核;
}
抓住
{
Dispose();
投掷;
}
}
私有静态标准内核注册服务()
{
返回新容器().GetModules();
} 

我发现了问题,在Azure上发布时,我没有在发布屏幕的“设置”选项卡上选择“在目标位置删除其他文件”选项

因此,发布没有删除我不再使用的旧DLL。 我清除了Azure上的所有文件,并再次发布,它成功了


在那之后,我在发布时选择了“在目标位置删除其他文件”选项,但这种情况不再发生。

在我的情况下,这个问题发生在UAT中,但不是在我的机器上

原因是我更改了名称空间,结果在发布文件夹中有两个库具有相同的类

我必须清理发布文件夹并再次发布。
现在一切都好了

但是你的代码在哪里?执行可枚举的单次调用的代码是什么?什么是单曲?我不知道他会把错误扔到哪里去。我无法调试,因为这是一个云。是的,但至少你可以查看一下
Ninject.Web.Mvc.ninjectmvchttpplicationplugin.Start()的源代码,看看它在哪里调用
Single
!关于调试帮助必须提供的问题,另请参见感谢Marcus。这对我很有帮助。我(愚蠢地)尝试了从Bitbucket到Azure的持续集成选项,结果把事情搞砸了。当我返回手动发布时,我遇到了与您相同的错误。