Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web安全性有奇怪的问题。InitializeDatabaseConnection()和Azure主机_C#_Asp.net Mvc_Asp.net Mvc 4_Azure_Webdeploy - Fatal编程技术网

C# Web安全性有奇怪的问题。InitializeDatabaseConnection()和Azure主机

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

这件事很奇怪,让我觉得我忽略了一些显而易见的事情

我有一个带有SQL Server 2008数据库的ASP.NET MVC4应用程序。我使用EF代码优先,代码优先迁移。对于MVC成员,我使用SimpleMembershipProvider

以下是有关当前情况的一些信息:

该数据库已在Azure上,并且在其上运行了最新的迁移。 我可以使用文件中的连接字符串连接到数据库,因此我看到的连接字符串没有问题。 这在网站的各个出版商中时断时续地发生。 我正在调用WebSecurity.InitializeDatabaseConnectionDefaultConnection,Users,UserId,UserName,autoCreateTables:true;在global.asax中 数据库服务器上允许使用我的IP地址。 下面是global.asax中的应用程序启动方法:

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.