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 类是 ofWebMatrix.WebData和 not System.Webor的一部分System.Web.Security。您可能需要添加对的引用,WebMatrix.WebData.dll并且事情至少应该通过运行时编译器错误。

您在运行时会遇到编译器错误,因为视图通常是在应用程序第一次启动时编译的,而不是在编译程序集时编译的。

于 2013-07-11T15:11:58.503 回答
1

我假设您第一次尝试运行 MVC4 应用程序。

MVC4 为Internet Application模板添加了大量的程序集。如果你不使用它,它会变成 PIA 删除它们。

基本上,如果您不使用 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 回答