【问题标题】:Configuration(IAppBuilder) not firing on start up配置(IAppBuilder)在启动时未触发
【发布时间】:2016-12-08 00:08:11
【问题描述】:

下面的配置方法不会被触发。

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(SCM.Web.Startup))]
namespace SCM.Web
{
  public partial class Startup
  {
    public void Configuration(IAppBuilder builder) { }
  }
}

我遵循了here 的所有提示,这是一个新项目,而不是升级。我一辈子都看不到如何让它在断点处停止,我需要获得更多关于如何解决它的建议。

这是一个 Intranet 应用程序,因此无需登录。而是将身份设置为 Windows 凭据。我需要分配角色,以便只有某些用户可以访问控制器中的某些操作。我通常会应用 OWIN 和应用程序 cookie,所以这也是我在这里尝试遵循的方法。

【问题讨论】:

    标签: asp.net-mvc owin


    【解决方案1】:

    您需要一个OwinStartup 属性来告诉Owin 要调用什么方法。来自文档:

    用于标记程序集中的哪个类应该用于自动启动。

    在你的项目中添加一个,在命名空间声明之前:

    [assembly: OwinStartup(typeof(Your.Namespace.Startup))]
    namespace Your.Namespace
    {
        public partial class Startup
        {
          public void Configuration(IAppBuilder builder) { }
        }
    }
    

    还有一些其他方法可以让 Owin 知道哪种方法 (described here),但这是最简单的,也可能是最常见的。

    【讨论】:

    • 很抱歉,我意识到我提供的信息不足。我没有意识到这很重要,并且试图创建最小的、有代表性的例子,我切断了更多的东西。请接受我的道歉。我已经更新了问题。
    • 你没有owin:appStartup的应用设置吗?
    • 不,据我所知,解决方案中的任何地方都没有这样的字符串。不过,我明天会在工作中重新检查,以确保确定。从 MVC 4 升级时会出现该元素,对吗?我的案例是一个干净的 MVC 5。以防万一我第一次检查时错过了它 - 我该怎么办?删除?
    【解决方案2】:

    如果您在外部 IIS 或计算机上安装的“真实”IIS 上运行网站(而不是在您开始运行时启动的那个),那么您很可能错过了断点,因为当您经过时,调试器尚未附加到进程。

    我认为您可以通过检查解决方案和项目的设置来确认它,或者只是将此代码添加到您认为未通过的方法中。

    throw new Exception("Killroy was here...");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      相关资源
      最近更新 更多