C# Web安全性有奇怪的问题。InitializeDatabaseConnection()和Azure主机
这件事很奇怪,让我觉得我忽略了一些显而易见的事情 我有一个带有SQL Server 2008数据库的ASP.NET MVC4应用程序。我使用EF代码优先,代码优先迁移。对于MVC成员,我使用SimpleMembershipProvider 以下是有关当前情况的一些信息: 该数据库已在Azure上,并且在其上运行了最新的迁移。 我可以使用文件中的连接字符串连接到数据库,因此我看到的连接字符串没有问题。 这在网站的各个出版商中时断时续地发生。 我正在调用WebSecurity.InitializeDatabaseConnectionDefaultConnection,Users,UserId,UserName,autoCreateTables:true;在global.asax中 数据库服务器上允许使用我的IP地址。 下面是global.asax中的应用程序启动方法:C# Web安全性有奇怪的问题。InitializeDatabaseConnection()和Azure主机,c#,asp.net-mvc,asp.net-mvc-4,azure,webdeploy,C#,Asp.net Mvc,Asp.net Mvc 4,Azure,Webdeploy,这件事很奇怪,让我觉得我忽略了一些显而易见的事情 我有一个带有SQL Server 2008数据库的ASP.NET MVC4应用程序。我使用EF代码优先,代码优先迁移。对于MVC成员,我使用SimpleMembershipProvider 以下是有关当前情况的一些信息: 该数据库已在Azure上,并且在其上运行了最新的迁移。 我可以使用文件中的连接字符串连接到数据库,因此我看到的连接字符串没有问题。 这在网站的各个出版商中时断时续地发生。 我正在调用WebSecurity.InitializeD
protected void Application_Start()
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "UserId", "UserName", autoCreateTables: true);
//SeedMembership();
AreaRegistration.RegisterAllAreas();
Database.SetInitializer<PTContext>(null);
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
“userName”这里是我在azure上拥有的Sql Server的用户名
现在是奇怪的部分。如果我这样注释掉WebSecurity行:
protected void Application_Start()
{
//WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "UserId", "UserName", autoCreateTables: true);
//SeedMembership();
AreaRegistration.RegisterAllAreas();
Database.SetInitializer<PTContext>(null);
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
这个错误并不奇怪,因为我显然是在使用WebSecurity来处理我的登录和会员信息
你可以看到这对我来说是一种损失。我的假设是WebSecurity.Init。。第行是导致抛出第一个错误的原因,很明显,在我的app_start方法中缺少代码是导致第二个错误的原因。尝试放置autoCreateTables:false,看看问题是否是@danludwig所说的创建权限。
protected void Application_Start()
{
//WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "UserId", "UserName", autoCreateTables: true);
//SeedMembership();
AreaRegistration.RegisterAllAreas();
Database.SetInitializer<PTContext>(null);
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
You must call the "WebSecurity.InitializeDatabaseConnection" method
before you call any other method of the "WebSecurity" class.
This call should be placed in an _AppStart.cshtml file in the root of your site.