我在申请中声明了以下内容:
[assembly: OwinStartup("MyClass", typeof(MyClass), "ConfigureOwin")]
定义了一个启动类:
public class MyClass {
public void ConfigureOwin(IAppBuilder appBuilder) {
}
}
然后像这样开始:
WebApp.Start<MyClass>("baseUri");
然而,它不起作用。 WebApp总是试图寻找名为&#39; Configuration&#39;即使我定义寻找其他东西。我该怎么办?
答案 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)
OwinStartupAttribute
和WebApp.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文件中引用的顺序,把它放进去第一个位置,它对我有用。