gpt4 book ai didi

asp.net-mvc-3 - Ninject + MVC3 = InvalidOperationException : Sequence contains no elements

转载 作者:行者123 更新时间:2023-12-03 05:01:16 24 4
gpt4 key购买 nike

我创建了一个新的 MVC3 项目,按 F5,看到了示例页面。

然后我使用 NuGet 获取 Ninject.MVC extension 。我根据Ninject文档修改了我的global.asax,How To Setup an MVC3 Application :

public class MvcApplication : NinjectHttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index",
id = UrlParameter.Optional });
}

protected override IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
return kernel;
}

protected override void OnApplicationStarted()
{
base.OnApplicationStarted();

AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}

现在,当我运行该应用程序时,我会出现蓝屏死机,但出现以下异常:

InvalidOperationException - Sequence contains no elements.

at System.Linq.Enumerable.Single(...)

at Ninject.Web.Mvc.Bootstrapper.Initialize(...) line 67.

果然,line 67 of that file调用 .Single(),从而抛出异常。

我做错了什么?

最佳答案

我必须补充这一点,希望其他人能够更快地解决问题,而不是像我一样想拔掉他们头上的每一根头发。

我需要重命名项目中的所有内容以匹配新的业务术语。我更改了各处的命名空间,甚至更改了程序集名称(右键单击项目 > 属性 > 应用程序选项卡),以便生成的程序集符合新的命名约定。程序集重命名让 Ninject 非常生气!

通过重命名生成的程序集,我们在编译时会创建一个具有新名称的新文件。然而,旧名称的旧文件仍然在bin目录中!如果您通过 App_Start 中添加的类激活 Ninject,则该激活类将在两个程序集中调用(旧程序集和新重命名程序集)。不要问我如何或为什么,但它确实如此,并且它给你这个“已经初始化”的错误。

甚至清理解决方案都不起作用,因为 Visual Studio 只会删除它生成的二进制文件,这将是新重命名的二进制文件。它让旧的独自坐在那里。

在尝试执行其他操作之前先删除 bin 文件夹!我希望这可以避免其他人浪费宝贵的工作时间!

关于asp.net-mvc-3 - Ninject + MVC3 = InvalidOperationException : Sequence contains no elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com