OWIN StartUp不起作用

时间:2014-03-14 12:52:40

标签: c# owin

我在申请中声明了以下内容:

[assembly: OwinStartup("MyClass", typeof(MyClass), "ConfigureOwin")]

定义了一个启动类:

public class MyClass {

    public void ConfigureOwin(IAppBuilder appBuilder) {

    }

}

然后像这样开始:

WebApp.Start<MyClass>("baseUri");

然而,它不起作用。 WebApp总是试图寻找名为&#39; Configuration&#39;即使我定义寻找其他东西。我该怎么办?

6 个答案:

答案 0 :(得分:32)

对我来说,我需要添加Microsoft.Owin.Host.SystemWeb作为参考。 (单击管理Nuget包并搜索它。)

感谢this blog post提示。

我遇到了这个问题,因为我使用OWIN middleware for ADFS authentication从Web API迁移到了Web API。

答案 1 :(得分:12)

如果您在optimizeCompilations="true"中使用web.config,则可能需要将其设置为false并返回true

答案 2 :(得分:7)

OwinStartupAttributeWebApp.Start<T>(StartOptions)都是指定用于配置OWIN管道的类的方法,两者都假定指定的类型具有签名为Configuration(IAppBuilder)的方法。

但是,OwinStartupAttribute有重载来指定可选的方法名称。使用WebApp.Start<T>方法时,AFAIK没有指定方法名称的重载。

OwinStartupAttribute在您拥有一个&#34; kickstart&#34;的外部组件时最有用。 OWIN管道,例如ASP.NET处理程序(使用Microsoft.Owin.Host.SystemWeb)或Helios(使用Microsoft.Owin.Host.IIS)。如果您是自托管(使用Microsoft.Owin.Host.HttpListener),则最好使用WebApp.Start方法。

这是OWIN Startup Class Detection上的一个很好的资源。

答案 3 :(得分:0)

在您的web.config appSettings中,尝试添加以下内容:

<appSettings>
    <add key="owin:AutomaticAppStartup" value="true" />
</appSettings>

答案 4 :(得分:0)

有多种原因导致startup.cs无法触发,一个常见的问题是startup.cs成功运行,但是调试器无法启动,假设您已经安装了所有组件,则可能是分配了Web项目url要使用外部主机,请将其更改为IIS Express即可检测到它。

转到Web项目设置,Web,然后在“服务器”部分中选择“ IIS express”。

答案 5 :(得分:0)

我也有同样的问题,我添加了Microsoft.Owin.Host.SystemWeb作为引用,后来添加了启动类,但我的情况,我需要改变.csproj文件中引用的顺序,把它放进去第一个位置,它对我有用。

source