OWINスタートアップクラスがありません


226

プロジェクトでOWINスタートアップクラスの参照が見つからないため、このエラーが発生します。Nugetを介してすべてのOWINリファレンスパッケージをインストールしても、同じ問題が発生します。とを使用Visual Studio 2012していMVC4ます。

アプリの読み込み中に次のエラーが発生しました。

  • OwinStartupAttributeを含むアセンブリは見つかりませんでした。
  • スタートアップまたは[AssemblyName] .Startupクラスを含むアセンブリが見つかりませんでした。OWINスタートアップディスカバリを無効にするには、web.configに「false」の値を含むappSetting owin:AutomaticAppStartupを追加します。OWINスタートアップアセンブリ、クラス、またはメソッドを指定するには、web.configにappSetting owin:AppStartupを完全修飾スタートアップクラスまたは構成メソッド名と共に追加します。

7
あなたはStartup.csプロジェクトにいますか?
christiandev 2013年

4
アセンブリにOwinStartupAttribute?あなたのアセンブリAいStartupまたは[AssemblyName].Startupクラスは?owin:AutomaticAppStartupweb.configに「false」の値を持つappSetting を追加して、OWINスタートアップディスカバリを無効にしましたか?これらのことの1つを実行し、なぜそれが機能しないのか疑問に思っていますか?あなたの質問は何ですか?
ta.speot.is 2013年

1
それは事です。プロジェクトに新しい項目を追加しようとすると、OWINスタートアップクラスが表示されません。私はそれをnugetsを介してOWIN参照を追加するように言うGoogleで検索し、私は同じことをしました。まだクラスを追加できません。
Krunal Patil 2013

回答:


213

スタートアップという名前のクラスを1つ作成すると、これが役立ちます。

public class Startup
{
   public void Configuration(IAppBuilder app)
   {
      app.MapSignalR();
   }
}

116
これに加えて、あなたの起動クラスがデフォルトの名前空間に何らかの形でない場合は、にWeb構成の行を追加<appSettings>などのエリア:<add key="owin:AppStartup" value="[NameSpace].Startup" />
アンドリュー・グレイ

7
Nowaday、owin形作るための3つの方法があります。asp.net/aspnet/overview/owin-and-katana/...
Jaider

22
@アンドリュー・グレーさんのコメントに加えて、パッティング[assembly:OwinStartupAttribute(typeof(Identity_Test.Startup))]には、AssemblyInfo.csあまりにも動作します。
アキレス

14
Microsoft.Owin.Host.SystemWebパッケージも必要です。それ以外の場合、スタートアップは呼び出されません
rjlopes

7
我々はまた、ちょうどスタートアップクラスの名前空間の前にこの行を追加することができます: [assembly: OwinStartup(typeof([YourStartupNamespaceName].Startup))]
ミングエン

194

このプロジェクトでは、OWIN機能は必要なかったため、最初のASP.NET MVCテンプレートプロジェクトからすべてのowin参照を削除しました。OWINスタートアップクラスを削除した後に、問題が発生しました。

問題は私のbinフォルダーにある余分なowin dllでした。削除したところ、問題は解決しました。binフォルダーを削除して、それらを削除する必要があります。Clean SolutionはこれらのDLLを削除しません。

どういうわけか、IISは、binフォルダーにある場合でもOWIN dllを実行します。


6
私にもこの問題があり、参照がOWIN DLLを参照していないことを確認する必要もありました。
ハッカー

2
同じ問題と同じ解決策。ただし、私の場合、Signalerを使用するコードブランチと、使用しないコードブランチの1つがありました。ブランチを切り替えると、Signalr dllがクリーン後も残っていました。手動で削除する必要がありました。
Kywillis 2014年

3
これは文字通り、binフォルダーはVisual Studioの "Clean Solution"を使用しているだけではなく、ほとんどのDLLを削除していましたが、すべてを削除していなかったことを意味します。
アランマクドナルド2015年

1
OWIN参照を削除した後、私のために働いた何かがあり、それがまだ正しく機能していない<add key="owin:AutomaticAppStartup" value="false"/>ため、appSettingとして追加していました。これを試してみて、それでも成功しない人へのアドバイスです。
LatentDenis

1
これが機能しない人のために、プロジェクト参照に移動するbinフォルダーを削除した後でも、Owin dllへの参照を削除するようにしてください。私の場合、binフォルダーを削除しましたが、.csprojファイルに(未使用の)参照が残っているのを忘れていました。
akousmata 2017

104

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
        }
    }
}

3
VS2015でもこれが必要
トム

2
これでうまくいきました。Startup.csファイルを作成して正しく入力しましたが、App_Startフォルダーにある必要があることを忘れていました。私の開発マシンで問題なく動作しましたが、一度公開されるとエラーが発生しました。ありがとう!
Jon Peterson

app.MapSignalR();を追加することを忘れないでください。Configuration(IAppBuilder app)では、[YourSite] / signalrを呼び出すと404が返されます
Kasper Halvas Jensen

45

OWINスタートアップを使用したくない場合は、これをweb.configファイルに追加する必要があります。

AppSettingsの下に次の行を追加します。

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

これは、web.configで次のように表示されます。

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

1
これは実際には完全な答えの1つです。web.configの設定にあまり
慣れ

25

Startup.csファイルを確認してください。これらの1つが欠落している可能性があります。このファイルはOWINのエントリポイントであるため、不足しているようです。OWIN Startup class何が起こっているのかを理解するには、ここを見てください。

あなたのエラーが指定するように、あなたはweb.configでこれを無効にすることができます:

OWINスタートアップディスカバリを無効にするには、web.configに「false」の値を含むappSetting owin:AutomaticAppStartupを追加します。


5
グループに追加<add key="owin:AutomaticAppStartup" value="false" />する<appSettings>と、Startup.csは不要になりました。
ウェブワーム2014

@webworm、私は上記のことを述べました。
christiandev 2014

2
@christiandev正確には何を<add key="owin:AutomaticAppStartup" value="false" />しますか?機能が無効になりますか?OWINの機能を使用できるようにするために、後でアプリを起動する必要がありますか?
Flo

18

最初に起動ファイルを作成する必要があります。その後、このファイルのロケールをweb.configのappSettingsタグ内に次の行で指定する必要があります。

<add key="owin:AppStartup" value="[NameSpace].Startup"/>

それは私の問題を解決しました。


11

私はこの問題を抱えていましたが、これはOPの場合の問題ではないことを理解していますが、私の場合、Startupクラスがありましたが、デフォルトではそれを見つけられませんでした。

私の問題は、アセンブリ名にスペースが含まれていたため、デフォルトの名前空間がアセンブリ名とは異なるため、スタートアップクラスの名前空間がアセンブリ名とは異なっていました。

エラーが示すように、規則により、クラスの[アセンブリ名] .Startupが検索されます...したがって、スタートアップクラスの名前空間がアセンブリ名と同じであることを確認してください。私の問題を修正しました。


1
同様の問題がありました。私のプロジェクト名には「-」ハイフンがあり、VSによってアンダースコアに変換されたため、名前空間とスタートアップクラスは本質的に異なりました。
LDJ 2014

7

ここで推奨される修正のほとんどを試しましたが、それでもエラーメッセージを回避できませんでした。最後に、いくつかの推奨ソリューションを組み合わせて実行しました。

  1. このエントリをAppSettings私のweb.configセクションの上部に追加しました:

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

  2. プロジェクトの参照ノードを展開し、文字列を含むすべてを削除しましたOWIN。(私の組織は将来アクティブなOWINプロバイダーではない(そして今後もそうではない)ので、そうすることは安全だと感じました)

次にクリックするRunと、ホームページが表示されます。


4

私の場合は、プロジェクトの名前を変更して、フォルダ構造を変更しました。エラーがスローされている.csprojファイルのRootNameSpaceとAssemblyNameを更新すると、エラーが解決されることがわかりました。プロジェクトのパスを変更した場合は、これもチェックすることをお勧めします。

<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>

皆さんへの聖なる牛の称賛、永遠のようにそれにこだわっていて、これを読むまで解決策が見つからなかった、手動で変更した後、AssemblyNameは更新されませんでした。今ではうまくいきます!どうもありがとうございます!
メイソン

3

私の場合?スタートアップファイルはありましたが、プロジェクトから除外されています。私はそれを含めただけでエラーが残りました。


3

これは、MVCプロジェクトでAzure ADを使用する場合にもVisual Studio 2015で直面する可能性があります。ここでは、App_StartフォルダーにStartup.Auth.csとしてスタートアップファイルを作成しますが、

[assembly: OwinStartup(typeof(MyWebApp.Startup))]

だからそれを追加し、あなたは行ってもいいはずです。これは名前空間の開始前に行われます。


2

また、IIS Expressを介して実行していて仮想ディレクトリが正しく構成されていない場合、(正しく構成されたスタートアップクラスがある場合でも)この例外が発生する可能性もあります。

この問題が発生したときの解決策は、プロジェクトプロパティの[Web]タブにある[仮想ディレクトリの作成]ボタンを押すことでした(Visual Studio 2013を使用)。


2

OWINをプロジェクトに追加しようとしているのですか、それとも予期しないものですか?

  1. OWINを追加する場合は、Startupクラスを追加するのがよいでしょう。

  2. Owinへの参照が必要ない場合:

    / binフォルダーからOwin.dllを削除する

    Owin.dllは、スタートアップクラスを識別しようとするものです。


1

これで問題が解決した理由を完全に説明することはできませんが、APIプロジェクトを分離\debugして\releaseフォルダーにビルドするように変更した後、このような問題に遭遇しました。私がその変更を元に戻し、単一の\binフォルダーにビルドするように戻すと、物事が機能し始めました。

ここに私の経験を書きました:ASP.NETプロジェクトファイルの名前を変更した後、OWINスタートアップクラスをIIS Expressで実行できません


1

SignalRを試してからプロジェクトから削除した後、この問題に遭遇しました。解決するには、リモートサーバー上のサイトのbinフォルダーの内容を削除してから、再度公開する必要がありました。


1

packages.configファイルがチェックインされていることを確認するだけです(除外されている場合、エクスプローラーに赤いエントリなしの記号が表示されます)。なんらかの奇妙な理由で、私は除外され、この問題を引き起こしました。


0

VS2013でブラウザーリンクダッシュボードを使用してプロジェクトを開始したときも、同じエラーが発生し続けました。しかし、プロジェクトをデバッグモードで実行すると、プロジェクトは機能します。ブラウザリンクダッシュボードを機能させる理由と方法を理解できませんでした。スタートアップファイルを確認しましたが、問題はありませんでした。いくつかの回答 ""で説明されているようにappSetting行を追加しましたが、何も機能しませんでした。

どうやら、私が間違っていたのは、ブラウザダッシュボードの間違ったリンクをクリックしたことです。すべてのソリューションプロジェクトのリンクがブラウザダッシュボードに表示されますが、機能するのはスタートアッププロジェクトのリンクのみです。スタートアッププロジェクトのリンクをクリックする必要があります。

例:2つのプロジェクトがあり、どちらもブラウザーダッシュボードに表示されていますが、起動プロジェクトとしてマークされたプロジェクトのみが機能します(ソリューションエクスプローラーで太字で表示されます)。明白につまずく日。


0

他のプロジェクトがVSの複数のインスタンスで開いているときにTFSの最新バージョンを入手したときに、この問題が発生しました。私はすでに上記の修正をすべて持っています。VSを再度開くと問題が修正されました。


0

私の場合、ftpサーバーにログインしました。FTPサーバー上の現在のファイルのバックアップを取りました。FTPサーバーからすべてのファイルを手動で削除します。クリーンなソリューション、コードを再デプロイ。出来た。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.