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.configappSettings
中返回到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,这是唯一有效的东西!这有效了!为什么有效?我很高兴现在我登录只是为了更新这个---谢谢!