将LIVE Kentico实例及其数据库复制到本地计算机

时间:2015-04-17 22:37:44

标签: kentico

错误似乎是这样的:

  

错误:发生错误:必须存在包含默认数据的文件夹。

以下是我重新创建的步骤。

我已阅读How to Copy Kentico Instance to a Local Machine?并遵循其所有步骤。它没有解决我的问题。 Kentico一直希望我做"步骤1 - 数据库实例,"当我完成这些步骤时,我收到了上述错误。

以下是我采取的步骤:

数据库

  1. 备份LIVE数据库。
  2. 在本地恢复。
  3. 添加适当的服务器登录名和数据库用户。
  4. 这就是我添加服务器登录的方式

    USE [master]
    GO
    CREATE LOGIN [myUser] WITH PASSWORD=N'myPassword', 
        DEFAULT_DATABASE=[master], 
        CHECK_EXPIRATION=OFF, 
        CHECK_POLICY=OFF
    GO
    
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [myUser]
    GO
    

    以下是我配置数据库用户的方法

    CREATE USER [myUser] FOR LOGIN [myUser] WITH DEFAULT_SCHEMA=[dbo]
    GO
    

    以下是指定的数据库角色

    GO
    ALTER ROLE [db_owner] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_ddladmin] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_datareader] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_datawriter] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_datareader] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_datawriter] ADD MEMBER [myUser]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [myUser]
    GO
    

    代码库

    1. 在本地查看现有代码库。
    2. 设置IIS以托管现有代码库。
    3. 的web.config

      将连接字符串更改为指向本地SQLExpress

      <add name="CMSConnectionString"
           connectionString="Persist Security Info=False;
                             database=MyKentico;
                             server=.\SQLEXPRESS;
                             user id=myUser;
                             password=myPassword;
                             Current Language=English;
                             Connection Timeout=240;" />
      

      的主机

      添加以下条目:

      127.0.0.1     ca.myKentico.local
      

      结果

      当我去ca.myKentico.local时,会出现以下屏幕。

      Step 1 - Database Instance

      因此,我单击“下一步”,将出现以下屏幕。

      Step 2 - Database Collation

      下一步。

      Step 3 - Database Creation Log

      此时,屏幕底部出现错误消息。

        

      错误:发生错误:必须存在包含默认数据的文件夹。

2 个答案:

答案 0 :(得分:3)

请尝试这样的连接字符串以查看它是否有效:

<add name="CMSConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Kentico82;Integrated Security=False;User ID=MyUser;Password=MyPassword;Connect Timeout=240" />

感谢。

也可能是您在本地重新创建了数据库模式而未添加数据。运行以下查询以确保您拥有本地数据。

SELECT *
FROM [dbo].[CMS_UIElement]

如果那里没有数据,那么您就没有管理员用户界面。您需要运行将LIVE数据库中的数据导入到本地数据库中。

答案 1 :(得分:0)

如果您之前有一份工作副本并在另一个/新环境中进行设置,并且您在初次访问该站点时看到的第一个页面是安装页面,那是因为连接字符串是:

  • 丢失
  • 不正确

如果您的连接字符串正确且您的用户没有权限,您将收到一个页面,说明该用户没有权限。所以你还没有连接。

在web.config中输入连接字符串时,请在一行中输入所有内容(是的,我知道您可以在显示时执行此操作,但请幽默我)并确保您的字符串为:

  • 为SQL Express正确格式化
  • 名为“CMSConnectionString”

确认完这些项目后,请回收网站AppPool并重试。