ローカルのIIS Express Serverを使用して、Visual Studio 2012で正常に動作するMVC4 Webアプリケーションがあります。アプリケーションをIIS 8 Webサーバーに公開すると、 Windows 2012で実行している場合、初期ログインページは正しく表示されますが、リモートデバッグを使用すると、次の行を使用して資格情報を確認するときに表示されます。
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
次の図に示すエラーが表示されます。 System.Web.Helpers error http://www.ismlab.usf.edu/capture.jpg
解決策-参照をローカルにコピーする
MVCがサーバーにインストールされていないかのように聞こえます。
System.Web.Helpers.dll
は公式のNugetパッケージに含まれています Microsoft.AspNet.WebPages 。
それをインストールすると、参照が修正され、ファイルがbinフォルダーにコピーされます。
Microsoft Web Platform Installer をダウンロードしてMVCを検索し、「ASP.NET MVC3(Visual Studio 2010)2011年4月11日リリース」パッケージをインストールすることで、これを解決できました。インストールする前に、Visual Studioインスタンスを閉じます。
同じエラーに遭遇し、アセンブリ内で参照を見つけることができなかったため、既存の回答に追加するだけです。私はちょうど私が助けたものを共有します:
「ツール」->「NuGetパッケージマネージャー」->「パッケージマネージャーコンソール」からパッケージマネージャーを開き、次のように入力します。
PM> Install-Package Microsoft-web-helpers
この後、System.Web.HelpersがReferences-> Assembliesの下に表示されます。そこから「ローカルコピー」プロパティをTrueに変更できます。
NuGetパッケージの管理を使用して「Microsoft ASP.NET Razor」を追加しました。
参照の追加では、何らかの理由で、System.Web.Helpers 1.0.0と2.0.0しかありませんでしたが、3.0.0はありませんでした。
VS 2015Previewを実行していますが、NuGetを介してMVCの最新バージョンをインストールすることで問題を解決できます。
誰かがまだこれに出くわしている場合に備えて。
Web.configファイルに何か問題がある可能性があります。ファイルを開き、<runtime></runtime>
鬼ごっこ。 MVCのバージョンを変更します。たとえば、MVC 3
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
IIS 8.でWCFサービスを使用する際に同じ問題が発生しました。このソリューションをご覧ください Deploying ASP.NET 。
MVCの正しいバージョンを追加すると、Microsoft Web Helperへの参照が追加されますが、System.Web.Helperへの参照は追加されません。これを参照に手動で追加します。