簡體   English   中英

OWIN啟動類丟失

[英]OWIN Startup Class Missing

我收到此錯誤,因為我的項目無法找到OWIN啟動類的參考。 我甚至通過Nuget安裝了所有OWIN參考包仍然遇到了同樣的問題。 我正在使用Visual Studio 2012MVC4

嘗試加載應用程序時發生以下錯誤。

  • 找不到包含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類的名稱空間與程序集名稱相同。 解決了我的問題。

我在這里嘗試了大多數推薦的修復程序,仍然無法避免錯誤消息。 我終於完成了幾個推薦的解決方案的組合:

  1. 將此條目添加到我的web.configAppSettings部分的頂部:

    <add key="owin:AutomaticAppStartup" value="false"/>

  2. 擴展了我的項目的References節點並刪除了包含字符串OWIN (我覺得這樣做很安全,因為我的組織未來(現在也不會)是活躍的OWIN提供商)

然后我點擊了Run ,我的主頁就被加載了。

在我的情況下,我重命名了項目並更改了它的文件夾結構。 我發現更新拋出錯誤的.c​​sproj文件中的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添加到您的項目中,或者這是意料之中的事情?

  1. 如果您想添加OWIN,可以添加一個Startup類。

  2. 如果不需要任何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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM