0

我正在尝试将我的网站部署到 123reg,但在数据库权限方面遇到了困难。我看到其他人也有类似的问题,但他们似乎都在使用带有 DBContexts 的实体框架,而我没有(我不这么认为)。

我正在使用 Web.Security.Membership.CreateUser 方法。所有的数据库表都设置好了。我的连接字符串几乎肯定是正确的,因为我在不同的托管服务提供商上进行了相同的设置,并且效果很好。该站点可以从数据库中读取,但在尝试写入时失败。

调用该方法时,出现以下错误。

数据库“master”中的 CREATE DATABASE 权限被拒绝。

有没有办法阻止 DefaultMembershipProvider 尝试创建数据库或告诉它它在哪里?

<add name="Simple.Data.Properties.Settings.DefaultConnectionString" connectionString="Server=ATLAS-SQL-07;Database=mydatabasename;User ID=myuserid;Password=xxxxxx;" />

我正在使用 Simple.Data (从连接字符串的名称可以看出)。也许这会导致它出现问题。我不明白为什么它可以在我的 Netcetera 主机上完美运行?

为了进一步测试,我将 MVC4 示例 Web 应用程序发布到 123reg 并指向同一个数据库,它有完全相同的问题。

4

1 回答 1

1

我对 123-reg 也有类似的问题;以及其他一些问题。我发现最好的方法是取消创建数据库的调用并导入一个工作数据库(其中有一个用户)。确保将导入文件作为 ANSI 执行,否则会在导入时插入随机字符。

私有类 SimpleMembershipInitializer { public SimpleMembershipInitializer() { Database.SetInitializer(null);

            try
            {
                /*
                using (var context = new UsersContext())
                {
                    if (!context.Database.Exists())
                    {
                        // Create the SimpleMembership database without Entity Framework migration schema
                        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }
                }*/

                WebSecurity.InitializeDatabaseConnection("TobaContext", "UserProfile", "UserId", "UserName", autoCreateTables: true);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
            }
        }
    }

我在使用 123-reg 时遇到了许多问题——其中一些是我的错——我认为其中一些是他们的。

作为会员的提醒 - 目前我遇到了 RequireHTTPS 属性的问题。它似乎会导致“服务器重定向过多”问题。然而,我认为该属性应该是开箱即用的。

祝你好运,希望对你有所帮助

戴夫

于 2013-05-27T20:13:54.123 回答