【发布时间】:2012-06-06 18:55:42
【问题描述】:
团队,我正在部署一个 ASP.NET MVC 应用程序。当我部署它时,应用程序工作正常,但是当我调用Membership.CreateUser 时,它最终会尝试创建数据库,即使它已经存在。由于数据库已经存在,我需要做什么才能使其不会尝试调用CreateMembershipEntities?
我已尝试将 Database.SetInitializer 设置为什么都不做的初始化程序,我已尝试删除 Web.config 中的 defaultConnectionFactory - 我目前没有选项。
期待您的帮助!
更新
我昨天才发现它尝试创建数据库的原因是因为主机服务器不允许连接查询sysdatabases,因此数据库从不存在,因此一直在尝试创建它。看来我可能不得不回到老式的 AspNet 会员提供程序,并且也离开 EF 代码优先模型。
【问题讨论】:
-
"我已经尝试将 Database.SetInitializer 设置为什么都不做的初始化程序":禁用 DB 初始化的常规方法是将初始化程序设置为
null,即 @987654327 @。但我不知道这个 EF 的东西与使用存储过程和它自己的连接的 ASP.NET MembershipProvider 有什么关系(除非你以某种方式自定义了提供程序)。如果将初始化程序设置为null可以解决问题,我会感到惊讶。 -
@Slauma 我遇到的问题是,当成员表已经存在于生产数据库中时,它正在尝试创建成员表。我在生产服务器上没有 DROP 和 CREATE 数据库访问权限。这里值得注意的另一件事是生产服务器是 GoDaddy,而我使用的成员资格提供程序是它在新的 ASP.NET MVC 4 应用程序中配置的 DefaultMembershipProvider。它在我的开发箱上运行良好。
标签: entity-framework-4.1 asp.net-mvc-4 membership-provider