我用VS2012开始了一个新的互联网项目,我试图重新调整我的项目,我似乎无法保持SimpleMemberhsipProvider的工作.基本上,我所做的就是将模型对象与其他几个项目一起移动到核心项目中.我已经实现了Ninject,并试图通过使用存储库模式来获取我的数据来抽象实体.我真的不觉得我对当前的项目做了很多改变,但出于某种原因,当我启动应用程序时,我得到:
{"尚未启用角色管理器功能."}
框架提供的ActionFilter是在以下情况下引发错误的位置:
WebSecurity.InitializeDatabaseConnection("DefaultConnection","UserProfile","Id","UserName",autoCreateTables:true);
叫做.
这是一些堆栈跟踪:
[ProviderException:尚未启用角色管理器功能.] System.Web.Security.Roles.EnsureEnabled()+
9561885
System.Web.Security.Roles.get_Provider()+8
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName,String userIdColumn,String userNameColumn,Boolean autoCreateTables)+104
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName,String userTableName,String userIdColumn,String userNameColumn,Boolean autoCreateTables)+100
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer .. C:\ Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs中的ctor():42[InvalidOperationException:无法初始化ASP.NET Simple Membership数据库.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=256588]
c:\ Users\Kyle\Documents\Visual Studio 2012中的InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor() \项目\ InoutBoard\InoutBoard.Core \基础设施\ \过滤InitializeSimpleMembershipAttribute.cs:46
我将在以下链接上的github上托管代码https://github.com/keroger2k/InoutBoard
asp.net asp.net-mvc entity-framework asp.net-mvc-4 simplemembership
我想补充授权属性,我的一些MVC4控制器,他们罚款,只要它是一个计划工作[Authorize]或[Authorize(Users="myuser")],但第二次我在任何类型的过滤作用,它的加入分崩离析,例如.[Authorize(Roles="admin")].然后我开始得到如下错误:
'/'应用程序中的服务器错误.
建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
SQLExpress数据库文件自动创建错误:
连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例.提供程序尝试自动创建应用程序服务数据库,因为提供程序确定数据库不存在.要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足以下配置要求:
如果应用程序在Windows 7或Windows Server 2008R2上运行,则需要执行特殊配置步骤才能自动创建提供程序数据库.有关其他信息,请访问:http://go.microsoft.com/fwlink/?LinkId = 160102.如果应用程序的App_Data目录尚不存在,则Web服务器帐户必须具有对应用程序目录的读写权限.这是必要的,因为Web服务器帐户将自动创建App_Data目录(如果它尚不存在).如果应用程序的App_Data目录已存在,则Web服务器帐户仅需要对应用程序的App_Data目录的读写访问权限.这是必要的,因为Web服务器帐户将尝试验证应用程序的App_Data目录中是否已存在Sql Server Express数据库.从Web服务器帐户撤消对App_Data目录的读取访问将阻止提供程序正确确定Sql Server Express数据库是否已存在.当提供程序尝试创建现有数据库的副本时,这将导致错误.需要写访问权限,因为在创建新数据库时会使用Web服务器帐户的凭据.必须在计算机上安装Sql Server Express.Web服务器帐户的进程标识必须具有本地用户配置文件.有关如何为计算机和域帐户创建本地用户配置文件的详细信息,请参阅自述文档.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 错误定位指定的服务器/实例)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection,操作1重试,DbConnectionOptions userOptions,DbConnectionInternal&connection)+5311874 System.Data .ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource 1 retry)+83 System.Data.SqlClient.SqlConnection.Open()+96 System.Web.Management.SqlServices.GetSqlConnection(String server,String user,String password) ,布尔值信任,String connectionString)+761 wrapCloseInAction) +5295167 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +242
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean …
我们有时会在Azure上启动MVC4站点时出错.从未在本地服务器上看到这些错误.在将数据库和应用程序部署到Azure之后,如果请求授权并且在站点上不活动一段时间之后(由于超时可能导致错误),则会在主页启动时出现问题.代码简单如下所示:
[InitializeSimpleMembership]
[Authorize(Roles = "Administrator")]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
请求主页有时会失败:
[Win32Exception (0x80004005): Access is denied]
[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL …Run Code Online (Sandbox Code Playgroud) sql-server asp.net-mvc azure asp.net-mvc-4 azure-sql-database