之前,我問我的問題我已經通過下面的帖子不見了:在問題中提到OwinStartup類中的Configuration方法何時調用/執行?
- Can't get the OWIN Startup class to run in IIS Express after renaming ASP.NET project file和所有的職位。
- OWIN Startup Detection
- OwinStartupAttribute required in web.config to correct Server Error #884
- OWIN Startup class not detected
這裏是我的項目的文件夾佈局:
Startup.cs
using System;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Bootstrapper.Startup))]
namespace Bootstrapper
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Run(async context =>
{
await context.Response.WriteAsync(GetTime() + " My First OWIN App");
});
}
string GetTime()
{
return DateTime.Now.Millisecond.ToString();
}
}
}
的Web.config
<appSettings>
<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:appStartup" value="Bootstrapper.Startup" />
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
我在Bootstrapper
項目如下參考:
- Microsoft.Owin
- Microsoft.Owin.Host.SystemWeb
- Owin
- 系統
- System.Core程序
UPDATE: 忘了補充錯誤消息:
現在,
- 爲什麼是它不工作?
- 什麼是添加在一個非常基本的項目(比如訪問
Home/Index
)使用Owin Startup
類的一步一步的過程? - 如何以及何時在
Owin Startup
類的配置方法是 名爲/執行?
UPDATE: 10日 - 12月-2016
檢查Project-Folder-Layout
。在Bootstrapper
項目中,我有以下文件:
IocConfig.cs
[assembly: PreApplicationStartMethod(typeof(IocConfig), "RegisterDependencies")]
namespace Bootstrapper
{
public class IocConfig
{
public static void RegisterDependencies()
{
var builder = new ContainerBuilder();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
builder.RegisterModule<AutofacWebTypesModule>();
builder.RegisterType(typeof(MovieService)).As(typeof(IMovieService)).InstancePerRequest();
builder.RegisterType(typeof(MovieRepository)).As(typeof(IMovieRepository)).InstancePerRequest();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}
}
現在我想在OWIN Startup
類來執行IocConfig.RegisterDependencies()
。我在Startup
頂部using Bootstrapper
,但它不起作用。我的意思是我無法在Startup
中引用IocConfig
。如何解決這個問題?
如果我沒有錯,這是我們所說的bootstrapping?將OWIN啓動文件引導到項目以外的其他項目? – barnes
老實說,我不知道很激動,但是我在一個關於什麼是引導的問題上找到了這個答案:https://stackoverflow.com/a/1255796/3872681。基於這個答案,我認爲,在web應用程序中引導意味着在真正的應用程序啓動之前加載所有的輔助框架,例如IoC容器或ASP.NET Identity模塊,所以OWIN本身就是一個引導程序。因此,移動OWIN啓動文件的項目稱爲bootstrapper,因爲它包含所有OWIN模塊,而不是您在此引導的OWIN模塊。但我不是100%確定的。 –