我在 .NET Framework 4 项目中使用了标准的 VS 2012 MVC 4 Internet 模板。我主要使用外部登录(Google、Microsoft、Facebook、Yahoo、Twitter)来访问我的应用程序中装饰有 [Authorize] 属性的部分。
[我注意到的一件事是 VS 创建的默认 web.config 不包含任何有关成员资格或角色提供程序的部分,这与我在 ASP.NET Web 表单应用程序中看到的不同。]
我将该项目部署到 azurewebsites.net 站点。最初一切正常,但经过一些使用后,该应用程序将抛出异常,因为它尝试使用服务器的机器配置文件SqlMembershipProvider
使用名为LocalSqlServer
.
Q1:SqlMembershipProvider 与 SimpleMembership 提供者有何关系?
无论如何,我在 web.config 中创建了一个 <membership> 部分并添加了 <clear/>。这解决了这个问题,但又产生了另一个问题,因为现在它再次尝试SqlRoleProvider
使用连接字符串在 machine.config中访问LocalSqlServer
!我尝试将带有 <clear/> 的 <roleManager> 部分添加到我的 web.config 中,但没有那么成功。它坚持要包含一个 defaultProvider。我应该放什么?
Q2。.NET Framework 4.0 MVC 4 应用程序中用于 SimpleMembership 角色提供程序的程序集是什么?
我试过了:
System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
但它产生了另一个问题,即它Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'
。在我运行 aspnet_regsql.exe 之前,我想问一下:
Q3:为什么标准app运行一段时间后就开始找SqlMembershipProvider和SqlRoleProvider了?
有人在玩服务器上的设置吗?