我让OwinStartup配置代码完美运行,然后它停止工作.不幸的是,我不确定我做了什么让它停止工作并且很难搞清楚它.
为了确保我已经涵盖了基础知识,我加倍检查以确保我拥有
[assembly:OwinStartup(typeof(WebApplication.Startup))]
Run Code Online (Sandbox Code Playgroud)
正确分配属性并确保我没有owin的appSetting:AutomaticAppStartup设置为false所以我将一个设置为true以保证安全,因为之前没有任何内容.
<add key="owin:AutomaticAppStartup" value="true" />
Run Code Online (Sandbox Code Playgroud)
我也尝试过专门调用appSetting:
<add key="owin:appStartup" value="WebApplication.Startup" />
Run Code Online (Sandbox Code Playgroud)
在它停止工作之前,我将Microsoft.Owin.Security NuGet包升级到2.0.2,所以我尝试将它们恢复到2.0.1(这很痛苦),但它没有改变任何东西.我在项目上安装了WebActivator并使用它来引导其他东西,但我已经在新的WebApplication模板上测试了它并且它在那里工作,所以我不认为那是罪魁祸首.
我还尝试删除我的Startup类并使用Visual Studio在Add New Item中使用OWIN Startup Class类型添加一个新类,并且也没有被调用.接下来我尝试添加第二个Startup类,因为我知道如果定义了多个OwinStartup属性它将抛出异常,但它没有抛出任何异常.
不知道还有什么可以尝试.有什么想法吗?
更新
事实证明Resharper在我用它删除未使用的引用时删除了对Microsoft.Owin.Host.SystemWeb的引用.
我在申请中声明了以下内容:
[assembly: OwinStartup("MyClass", typeof(MyClass), "ConfigureOwin")]
Run Code Online (Sandbox Code Playgroud)
定义了一个启动类:
public class MyClass {
public void ConfigureOwin(IAppBuilder appBuilder) {
}
}
Run Code Online (Sandbox Code Playgroud)
并开始像这样:
WebApp.Start<MyClass>("baseUri");
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.WebApp总是试图寻找一个名为"配置"的方法,即使我定义了寻找其他东西.我能做什么?
我有一个托管在 IIS 上的 Web API 2 应用程序。
为了配置 OWIN,它有一个与此类似的启动类:
[assembly: OwinStartup(typeof(Startup))]
namespace Application.Api
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
throw new Exception("Owin startup class fired"); // Added for test pourposes
}
}
}
Run Code Online (Sandbox Code Playgroud)
该应用程序工作得像一个魅力,直到它停止触发类Startup:配置文件中没有任何更改,没有包更新,文件Microsoft.Owin.Host.SystemWeb.dll存在于bin文件夹中,配置正常,等等。
只是它停止工作,但如果我将项目设置为启动项目并使用IIS Express按F5运行它,启动类就会正确加载。
我检查了其他帖子,可能有原因,但运气不佳:
ETC。