0

我的 MVC 应用程序在开发机器上运行良好,但是当我部署到生产服务器时,它总是会给出各种错误消息,例如:

在调用“WebSecurity”类的任何其他方法之前,您必须调用“WebSecurity.InitializeDatabaseConnection”方法。此调用应放置在站点根目录中的 _AppStart.cshtml 文件中。

WebMatrix.WebData 已将版本更改为 2.0 并将 Copy Local = true 设置为,我将这些行复制到 web.config 中:

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
 <providers>
  <clear/>
  <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider,WebMatrix.WebData"/>
 </providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
 <providers>
 <clear/>
 <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
 </providers>
</membership>

我不知道是什么原因。我需要帮助。

4

1 回答 1

0

如果您正在使用 simpleMembership,我鼓励您查看此BlogPost,这对我来说真的很有帮助,因为它可以让您控制所有成员表,并使它们成为您的实体框架模型的一部分

无论如何,在 MVC 项目的 Filters 目录中应该有一个InitializeSimpleMembershipAttribute.cs文件。转到该文件并执行以下操作:

if (!WebSecurity.Initialized)
            WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

并将其Global.asax.cs归档。这样,它将始终被初始化。同样在你这样做之后,不需要保留InitializeSimpleMembershipAttribute.cs,我建议你[InitializeSimpleMembership]取下你的AcccountController

于 2013-02-15T21:49:49.507 回答