1

次のコンパイル エラーが発生します。

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0103: The name 'WebSecurity' does not exist in the current context

Source Error:


Line 1:  @{
Line 2:      if (!WebSecurity.Initialized)
Line 3:      {
Line 4:          WebSecurity.InitializeDatabaseConnection("AreaProject", "User", "UserId", "EmailAddress", autoCreateTables: true);

Source File: c:\Projects\area\trunk\dotNet\area.Web\area.Web\_AppStart.cshtml    Line: 2 
enter code here

私のプロジェクトは「System.Web」を正しく参照しており、「System.Web.Security」を使用している他のファイルは正常にコンパイルされています。

この問題は、System.Web、System.Web.Pages、および System.Web.Razor の参照をアプリケーションに追加したときに始まりました。しかし、WebMatrix.WebData または WebMatrix.Data には変更を加えていません。

4

3 に答える 3

5

ここで参照されている WebSecurity クラスは、一部であり、またはではWebMatrix.WebDataありません。おそらく参照を追加する必要があり、少なくとも実行時コンパイラ エラーを回避する必要があります。System.WebSystem.Web.SecurityWebMatrix.WebData.dll

ビューは通常、アセンブリのコンパイル時ではなく、アプリケーションの初回起動時にコンパイルされるため、実行時にコンパイラ エラーが発生します。

于 2013-07-11T15:11:58.503 に答える
1

初めて MVC4 アプリケーションを実行しようとしていると仮定しています。

MVC4 では、Internet Applicationテンプレート用のアセンブリが大量に追加されます。使わない場合は外すとぴあになります。

基本的に、認証に WebMatrix や OAuth を使用しない場合は、SimpleMembershipInitializerクラス内のすべてをコメントアウトするだけで済みます。

private class SimpleMembershipInitializer
{
  // Comment out everything
}

AccountControllerテストのために、例外をスローする内部のすべての行をコメントアウトすることもできます。

于 2013-07-11T15:57:44.777 に答える
1

古いスレッドですが、万が一誰かが道を進むのに役立つ場合に備えて. なぜこのように動作するのかはわかりませんが、WebMatrix.WebData、WebMatrix.Data などのパッケージをインストールするだけでは不十分な場合があります。これらのアセンブリをインストールした後にアプリケーションの参照セクションを見ると、WebMatrix.WebData、WebMatrix.Data は、アプリケーションの BIN フォルダーにありましたが、まだ表示されていませんでした。それらを作成するには、文字通り [参照の追加] を使用する必要がありました。その後、彼らが現れ、すべてが機能し始めました。

于 2016-10-09T03:02:37.873 に答える