Mvc 5はOwinに依存しているようです。Owinは、自己ホストしたりMacで実行したりする場合に最適です。しかし、以前のバージョンと同じようにIISの下で実行したいだけで、Owinが提供するものには興味がありません。デフォルトの「空白」mvc5テンプレートはowinと15の他の依存関係を使用しますパッケージを1つずつ削除しようとしましたが、Owinの属性を使用せずに開始する方法をサイトが知らなかったようです。
Owinを無効にする簡単な方法はweb.config
ファイルにあり、<appSettings>
セクションにこれを追加します。
<add key="owin:AutomaticAppStartup" value="false" />
Owinを完全に削除するには、プロジェクトを右クリックし、メニューからManage Nuget Packages
をクリックします。 Manage Nuget Packages
ウィンドウの左側でInstalled Package
をクリックしてから、ウィンドウの右側で検索ボックスにowin
と入力します。
Microsoft.owin.security.Twitter
を削除した後、他のowinパッケージは自動的に削除され、マシンで発生しない場合は、他のパッケージを自分で削除します。次に、このパッケージを削除します。
web.config
ファイルを開き、<runtime><assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
からこれらのセクションを削除します。
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
プロジェクトのルートにあるStartup.cs
ファイルを削除します。 App_Start folder
を開き、IdentityConfig.cs
およびStartup.Auth.cs
ファイルを削除します。 Controller folder
を開き、AccountController.cs
とManageController.cs
を削除します。 Models folder
ですべてのモデルを削除し、View Folder
でAccount Folder
およびManage folder
を削除します。
Visual Studioを再起動し、その後プロジェクトを実行します。このエラーが発生した場合:
アプリの読み込み中に次のエラーが発生しました。 -OwinStartupAttributeを含むアセンブリが見つかりません。 -Startupまたは[AssemblyName] .Startupクラスを含むアセンブリが見つかりません。 OWINスタートアップディスカバリを無効にするには、web.configにappSetting owin:AutomaticAppStartupを「false」の値で追加します。 OWINスタートアップアセンブリ、クラス、またはメソッドを指定するには、web.configでappSetting owin:AppStartupを完全修飾されたスタートアップクラスまたは構成メソッド名で追加します。あなたはそれを解決する2つの方法があります:
bin folder
を開き、Owin Assembly
があれば、それらをすべて削除します<appSettings>
セクションでweb.configを開き、この<add key="owin:AutomaticAppStartup" value="false" />
を追加しますデフォルトのmvc5テンプレートは、Identityをメンバーシップシステムとして使用します。 IdentityはOwinに依存するため、Owinがプロジェクトに含まれる理由は(他のいくつかの「オプション」パッケージとともに)です。新しい空のプロジェクトを作成し、パッケージMicrosoft.Aspnet.Mvcを手動でインストールする場合(コマンドInstall-Package Microsoft.Aspnet.Mvc
)Owinに依存していないことがわかります。
Obs:「MVCのフォルダーとコア参照を追加する」オプションをオンにして空のプロジェクトを作成することもできます。
OWINは単なる標準であり、ASP.netアプリをIISから切り離します。したがって、アプリはセルフホストできるなどの利点がありますが、IISでホストできないという意味ではありません。