[英]OWIN Startup Class Missing
我收到此錯誤,因為我的項目無法找到OWIN
啟動類的參考。 我甚至通過Nuget安裝了所有OWIN參考包仍然遇到了同樣的問題。 我正在使用Visual Studio 2012
和MVC4
。
嘗試加載應用程序時發生以下錯誤。
- 找不到包含OwinStartupAttribute的程序集。
- 找不到包含Startup或[AssemblyName] .Startup類的程序集。 要禁用OWIN啟動發現,請在web.config中添加值為“false”的appSetting owin:AutomaticAppStartup。 要指定OWIN啟動程序集,類或方法,請在web.config中添加appSetting owin:AppStartup以及完全限定的啟動類或配置方法名稱。
使用Name Startup創建一個類,這將幫助您..
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
在我們的項目中,我們不需要OWIN功能,因此我們從初始的ASP.NET MVC模板項目中刪除了所有owin引用。 刪除OWIN啟動類后出現問題。
問題是我的bin文件夾中的額外owin dll。 當我刪除它們時,問題得到了解決。 您應該刪除bin文件夾來刪除它們。 Clean Solution不會刪除這些dll。
不知何故,當IIS位於bin文件夾中時,IIS仍會執行OWIN dll。
在Visual Studio 2013 RC2上,有一個模板。 只需將其添加到App_Start文件夾即可。
模板生成這樣一個類:
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))]
namespace WebApiOsp.App_Start
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
}
}
}
如果您不想使用OWIN啟動,那么您應該添加到web.config文件中:
在AppSettings下添加以下行:
<add key="owin:AutomaticAppStartup" value="false" />
這是它在web.config中的樣子:
<appSettings>
<add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
查看Startup.cs
文件,您可能會遺漏其中一個。 這個文件是OWIN的入口點,所以聽起來好像缺少了。 看看OWIN Startup class
,了解最新情況。
正如您的錯誤指定的那樣,您可以通過執行以下操作在web.config中禁用此功能...
要禁用OWIN啟動發現,請在web.config中添加值為“false”的appSetting owin:AutomaticAppStartup
首先,您必須創建啟動文件,並且必須在web.config中指定此文件的區域設置后,在appSettings標記內使用以下行:
<add key="owin:AppStartup" value="[NameSpace].Startup"/>
它解決了我的問題。
我有這個問題,明白這不是OP的情況下的錯誤,但在我的情況下,我確實有一個Startup類,它只是默認沒有找到它。
我的問題是我的程序集名稱中有空格,因此默認名稱空間與程序集名稱不同,因此啟動類的名稱空間與程序集名稱不同。
正如錯誤所示,按照慣例,它會查找[程序集名稱]。類的啟動...所以請確保您的Startup類的名稱空間與程序集名稱相同。 解決了我的問題。
我在這里嘗試了大多數推薦的修復程序,仍然無法避免錯誤消息。 我終於完成了幾個推薦的解決方案的組合:
將此條目添加到我的web.config的AppSettings
部分的頂部:
<add key="owin:AutomaticAppStartup" value="false"/>
擴展了我的項目的References節點並刪除了包含字符串OWIN
。 (我覺得這樣做很安全,因為我的組織未來(現在也不會)是活躍的OWIN提供商)
然后我點擊了Run
,我的主頁就被加載了。
在我的情況下,我重命名了項目並更改了它的文件夾結構。 我發現更新拋出錯誤的.csproj文件中的RootNameSpace和AssemblyName解決了錯誤。 如果您修改了項目的路徑,我建議您也檢查一下。
<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>
我的情況? 我有啟動文件,但它被排除在項目中。 我只是把它包括在內,錯誤就剩下了。
當您將Azure AD與MVC項目一起使用時,Visual Studio 2015中也可能會出現這種情況。 在這里它創建啟動文件作為App_Start文件夾中的Startup.Auth.cs但它將缺少
[assembly: OwinStartup(typeof(MyWebApp.Startup))]
所以添加它,你應該很高興去。 這在命名空間開始之前進行。
如果通過IIS Express運行並且未正確配置虛擬目錄,也可能會出現此異常(即使您具有正確配置的啟動類)。
當我遇到此問題時,解決方案只是按下項目屬性的“Web”選項卡中的“創建虛擬目錄”按鈕(使用Visual Studio 2013)
您是否真的嘗試將OWIN添加到您的項目中,或者這是意料之中的事情?
如果您想添加OWIN,可以添加一個Startup類。
如果您不需要任何Owin參考:
從/ bin文件夾中刪除Owin.dll 。
Owin.dll是試圖識別Startup類的人。
雖然我無法完全解釋為什么這為我解決了這個問題,但在我將API項目更改為單獨的\\debug
和\\release
文件夾后,我遇到了這樣的問題。 一旦我將該更改恢復為構建到單個\\bin
文件夾,就會開始工作。
我在這里寫了我的經驗: 在重命名ASP.NET項目文件后,無法讓OWIN Startup類在IIS Express中運行
我在嘗試使用SignalR然后將其從項目中刪除后遇到了這個問題。 要解決此問題,我必須刪除遠程服務器上站點的bin文件夾的內容,然后再次發布。
只需檢查您的packages.config
文件是否已簽入(排除時,資源管理器中將顯示一個紅色的禁止輸入符號)。 由於某些奇怪的原因,我被排除在外並造成了這個問題。
當我使用VS2013中的瀏覽器鏈接儀表板啟動我的項目時,我一直收到同樣的錯誤。 但是,當我在調試模式下運行我的項目時,它會工作。 我無法弄清楚為什么以及如何讓Browser Link Dashboard工作。 我檢查了啟動文件,沒關系,按照一些答案“”中的描述添加了appSetting行,但沒有任何效果。
顯然,我錯誤的是單擊瀏覽器儀表板中的錯誤鏈接。 所有解決方案項目鏈接都顯示在瀏覽器儀表板中,但只有啟動項目鏈接有效。 您需要單擊啟動項目的鏈接。
示例:我有2個項目,都顯示在瀏覽器儀表板中,但只有標記為啟動項目的項目才有效(在解決方案資源管理器中顯示為粗體。)我認為這可能有助於某人做明顯的事情,它花了我2天絆倒到顯而易見的地方。
當我獲得最新的TFS而其他項目在VS的多個實例中打開時,我遇到了這個問題。 我已經有了上面的所有修復。 重新打開VS修復了問題。
在我的情況下,我登錄到ftp服務器。 在ftp服務器上備份當前文件。 從ftp服務器手動刪除所有文件。 清潔解決方案,重新部署代碼。 有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.