Asp.net mvc 4 如何调试NinjectWebCommon.cs?

Asp.net mvc 4 如何调试NinjectWebCommon.cs?,asp.net-mvc-4,ninject.web.mvc,Asp.net Mvc 4,Ninject.web.mvc,我们正在尝试通过ninjectwebcommon.cs进行调试,以找到respository的绑定。 在VS 2012中,我在kernel.bind上放置了一个Debugpoint,但它在任何时候都不会命中。有人能建议我如何调试这个吗 我有NInject版本v4.0.30319NInject是开源的。您可以从他们的Github页面下载整个项目,网址为。从那里,您可以将VisualStudio指向这些项目,而不是使用已编译的程序集 另一种选择是用作符号服务器。但看起来他们只有Ninject 3。对

我们正在尝试通过ninjectwebcommon.cs进行调试,以找到respository的绑定。 在VS 2012中,我在kernel.bind上放置了一个Debugpoint,但它在任何时候都不会命中。有人能建议我如何调试这个吗


我有NInject版本v4.0.30319

NInject是开源的。您可以从他们的Github页面下载整个项目,网址为。从那里,您可以将VisualStudio指向这些项目,而不是使用已编译的程序集

另一种选择是用作符号服务器。但看起来他们只有Ninject 3。

对我来说,不是那么简单(显然)的临时解决方案是在
Ninject WebCommon.RegisterServices中创建一个后台线程,配置为我正在调试的配置:

var thread = new System.Threading.Thread(() =>
{
  while (!System.Diagnostics.Debugger.IsAttached)
  {
    System.Threading.Thread.Sleep(100);
  }

  // custom code, including kernel.Bind<>() calls here
});

thread.IsBackground = true;
thread.Start();
var-thread=new-System.Threading.thread(()=>
{
而(!System.Diagnostics.Debugger.IsAttached)
{
系统线程线程睡眠(100);
}
//自定义代码,包括此处的kernel.Bind()调用
});
thread.IsBackground=true;
thread.Start();

这里的想法是,在调试器实际连接之前,不要让创建的线程执行可调试代码。设置
IsBackground
属性很重要,因为这样可以完成其余的
RegisterServices
方法,这反过来又允许应用程序启动并允许调试器连接。

我认为这里的实际问题是NinjectWebCommon使用WebActivatex集成到应用程序生命周期中,到Visual Studio可以连接其调试器时,该代码已经运行。Dude-谢谢。