2017-07-20 30 views
0

我在Web解決方案中有多個項目,這些項目是OWIN啓動和Global.asax啓動的混合。 OWIN啓動項目沒有global.asax,反之亦然。今天,我試圖通過將startup.cs添加到所有Global.asax啓動項目並刪除Global.asax來標準化解決方案。但是,我的新項目中沒有一個實際啓動。OWIN Starup.cs不會觸發

我曾嘗試:

1)運行安裝,包裝Microsoft.Owin.Host.SystemWeb中的NuGet

2)添加以下配置鍵的web.config:

<add key="owin:appStartup" value="namespace.Startup, assembly" /> 
<add key="owin:AutomaticAppStartup " value="true" /> 

3)刪除臨時ASP.NET文件(%temp%和C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319中的文件)

4)確保該類名稱爲Startup

5)刪除Startup類並通過選擇Add - > New Item - > OWIN Startup Class重新添加官方方式。

在我的調試環境中,這發生在IISExpress中,我沒有在生產環境中嘗試過。

我無法區分具有工作啓動類和不啓動類的項目。唯一的主要區別似乎是工作項目的net45和net46被列爲Owin和Microsoft.web.Infrastructure包的目標框架,但我認爲這不會有什麼不同。此外,該工作項目還安裝了SignalR,其他則沒有。

這些項目都是從一個帶有Web API(沒有MVC)的Empty web項目開始的,但我不記得是否指定了哪些是OWIN啓動。

+0

萬一它可以幫助任何人,這裏也有一些建議:https://stackoverflow.com/q/20203982/943746 –

回答

1

owin:appStartup應該是內部appSettings

<appSettings> 
    <add key="owin:appStartup" value="NAMESPACE.Startup" /> 
</appSettings> 

如果仍不能正常工作,你可以嘗試OwinStartup Attribute

using Microsoft.Owin; 
using Owin; 

[assembly: OwinStartup(typeof(YOUR_PROJECT_NAMESPACE.Startup))] 
namespace YOUR_PROJECT_NAMESPACE 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
     } 
    } 
} 

注意:您不需要在web.config中owin:appStartupowin:AutomaticAppStartup了。

+0

是的,在那裏做了。 – Ian