C# OWIN启动不工作

C# OWIN启动不工作,c#,owin,C#,Owin,我在申请表中声明如下: [assembly: OwinStartup("MyClass", typeof(MyClass), "ConfigureOwin")] 定义了一个启动类: public class MyClass { public void ConfigureOwin(IAppBuilder appBuilder) { } } 然后像这样开始: WebApp.Start<MyClass>("baseUri"); WebApp.Start(“bas

我在申请表中声明如下:

[assembly: OwinStartup("MyClass", typeof(MyClass), "ConfigureOwin")]
定义了一个启动类:

public class MyClass {

    public void ConfigureOwin(IAppBuilder appBuilder) {

    }

}
然后像这样开始:

WebApp.Start<MyClass>("baseUri");
WebApp.Start(“baseUri”);
但是,它不起作用。WebApp总是尝试查找名为“Configuration”的方法,即使我定义要查找其他方法。我能做什么?

这两种方法都是指定用于配置OWIN管道的类的方法,它们都假定指定的类型具有签名为
配置(IAppBuilder)
的方法

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

当您有一个“启动”OWIN管道的外部组件,例如ASP.NET处理程序(使用)或Helios(使用)时,
OwinStartupAttribute
最有用。如果您是自托管(使用),最好使用
WebApp.Start
方法


这里有一个很好的资源。

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

谢谢你的提示


我遇到这个问题是因为我使用从Web API迁移到Web API。

如果您在
Web.config
中使用
optimizeCompilations=“true”
,您可能需要将其设置为
false
并在Web.config
appSettings
中返回到
true

,请尝试添加以下内容:

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

它们是startup.cs未触发的各种原因,一个常见问题是startup.cs运行成功,但调试器未启动,假设您已安装所有组件,则可能是web项目url被分配用于外部主机,将其更改为IIS Express将检测到它


转到Web Project settings,Web,然后在servers部分选择IIS express。

我也有同样的问题,我添加了Microsoft.Owin.Host.SystemWeb作为引用,稍后添加startup类,但在我的情况下,我需要更改.csproj文件中引用的顺序,将其放在第一个位置,它对我有效


Ah,然而,自动启动似乎在自托管进程中并不真正起作用。删除WebApp。只需从OwinStartupAttribute和app.config开始,完全没有任何作用。你是对的。自托管时,没有什么可以“启动”应用程序(在web场景中,它将是ASP.NET处理程序或Helios(纯IIS))。如果你是自托管的,我会使用
WebApp.Start
方法,只需遵守约定:)+1指出,当托管在IISI中时,ASP.Net处理程序需要启动
OwinStartupAttribute
,它试图添加包以获得一个普通的MVC应用程序来使用OAuth中间件。安装了大部分OWIN,但是,如果没有Microsoft.OWIN.Host.SystemWeb,Startup.cs就无法运行,只是占用了空间。我总是忘记这一点:-(这可能是重复的。看看这个答案:这对我有效。这是一个临时的ASP.NET文件吗?也为我解决了这个问题。将
优化编译
更改为
,运行你的应用程序,然后切换回
。这是一个愚蠢的解决方案,但有效!这个。通过了一系列其他answers,这是唯一有效的东西!这有效了!为什么有效?我很高兴现在我登录只是为了更新这个---谢谢!