私のプロジェクトはOWIN
スタートアップクラスの参照を見つけることができないので、私はこのエラーを得ています。私はNugetを通してすべてのOWINリファレンスパッケージをインストールしましたが、まだ同じ問題を抱えています。私はVisual Studio 2012
とMVC4
を使っています。
アプリを読み込もうとしているときに次のエラーが発生しました。
- OwinStartupAttributeを含むアセンブリは見つかりませんでした。
- Startupクラスまたは[AssemblyName] .Startupクラスを含むアセンブリが見つかりませんでした。 OWINスタートアップ検出を無効にするには、web.configにappSetting owin:AutomaticAppStartupを "false"の値で追加します。 OWINスタートアップアセンブリ、クラス、またはメソッドを指定するには、web.configにappSetting owin:AppStartupを完全修飾スタートアップクラスまたは構成メソッド名で追加します。
名前のスタートアップで1つのクラスを作成するこれはあなたを助けるでしょう..
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
私たちのプロジェクトでは、OWIN機能は必要なかったので、最初のASP.NET MVCテンプレートプロジェクトからすべてのowin参照を削除しました。 OWINスタートアップクラスを削除した後に問題が発生しました。
問題は私のbinフォルダに余分なowin dllがあることでした。それらを削除したとき、問題は解決しました。 binフォルダを削除してそれらを削除する必要があります。 きれいな解決策 はこれらのdllを削除しません。
どういうわけか、IISはbinフォルダにあるときに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
ファイルを調べてください。これらのうちの1つが欠落している可能性があります。このファイルはOWINのエントリポイントなので、これが見つからないようです。ここで OWIN Startup class
を見てください。
あなたのエラーが指定するように、あなたは以下をすることによってweb.configでこれを無効にすることができます...
OWINスタートアップ検出を無効にするには、web.configにappSetting owin:AutomaticAppStartupを "false"の値で追加します。
最初に起動ファイルを作成し、このファイルのロケールをweb.configのappSettingsタグ内で次の行で指定する必要があります。
<add key="owin:AppStartup" value="[NameSpace].Startup"/>
それは私の問題を解決しました。
私はこの問題を抱えていました、これがOPの場合には間違っていたことではないことを理解してください。
私の問題は、私のアセンブリ名にスペースがあったため、デフォルトの名前空間がアセンブリ名と異なっていたため、スタートアップクラスの名前空間がアセンブリ名と異なっていたことです。
エラーが示すように、慣例ではクラスの[アセンブリ名] .Startupを探します...したがって、スタートアップクラスの名前空間がアセンブリ名と同じであることを確認してください。私のために問題を修正しました。
私はここで推奨される修正のほとんどを試してみましたが、それでもエラーメッセージを回避することはできませんでした。私はついにいくつかの推奨解決策を組み合わせて実行しました。
このエントリをmy 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(D_ToolsWebApp.Startup))]
だからそれを追加し、あなたは行ってもいいはずです。これは名前空間が始まる前に行われます。
IIS Expressを介して実行していて、仮想ディレクトリが正しく構成されていない場合は、この例外が発生する可能性があります(スタートアップクラスが正しく構成されている場合でも)。
この問題が発生したときの解決策は、プロジェクトプロパティの[Web]タブにある[Create Virtual Directory]ボタンを押すことでした(Visual Studio 2013を使用)。
SignalRを試してからプロジェクトから削除した後、この問題に遭遇しました。解決するには、リモートサーバー上のサイトのbinフォルダーの内容を削除してから再度公開する必要がありました。
あなたは本当にあなたのプロジェクトにOWINを追加しようとしていますか、これは予想外のことですか?
あなたがOWINを追加したい場合は、Startupクラスを追加するのがよい方法です。
の場合は 必要ない Owin :
あなたの/ binフォルダからOwin.dllを削除します 。
Owin.dllはStartupクラスを識別しようとしているものです。
packages.config
ファイルがチェックインされていることを確認してください(除外されると、エクスプローラに赤いエントリなしの記号が表示されます)。いくつかの奇妙な理由で私のものは除外され、この問題を引き起こしました。
これで問題が解決した理由を完全に説明することはできませんが、APIプロジェクトを\debug
フォルダと\release
フォルダに分けてビルドするように変更した後、このような問題に遭遇しました。一度その変更を元に戻して単一の\bin
フォルダにビルドするようにしたところ、うまくいきました。
私はここに私の経験を書いた: ASP.NETプロジェクトファイルの名前を変更した後にIIS Expressで実行するためにOWIN Startupクラスを得ることができない
私の場合、私はFTPサーバーにログインしました。 FTPサーバー上の現在のファイルのバックアップを取得しました。 ftpサーバーからすべてのファイルを手動で削除します。きれいな解決策、コードを再展開しました。出来た。
VS2013のブラウザリンクダッシュボードを使用してプロジェクトを開始したときに、同じエラーが発生し続けました。しかし、私が自分のプロジェクトをデバッグモードで実行したとき、それはうまくいくでしょう。私はなぜそしてどのようにしてBrowser Link Dashboardを動かすのか理解することができませんでした。私はスタートアップファイルをチェックしました、それは大丈夫でした、答えのいくつかで説明されているようにappSetting行を追加しましたが、何もうまくいきませんでした。
どうやら、私が間違っていたのはブラウザダッシュボードの間違ったリンクをクリックすることでした。ソリューションダッシュボードのすべてのリンクはブラウザダッシュボードに表示されますが、スタートアッププロジェクトのリンクのみが機能します。あなたはスタートアッププロジェクトのリンクをクリックする必要があります。
例:2つのプロジェクトがあり、両方ともブラウザダッシュボードに表示されていますが、起動プロジェクトとしてマークされたプロジェクトのみが機能します(ソリューションエクスプローラで太字で表示されます)。明らかにつまずく日々。
他のプロジェクトがVSの複数のインスタンスで開かれているときにTFSの最新情報を入手したとき、私はこの問題を抱えていました。私はすでに上記のすべての修正をしています。 VSを再度開くと問題が解決しました。