首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sitecore错误:无法读取Sitecore配置

Sitecore错误:无法读取Sitecore配置
EN

Stack Overflow用户
提问于 2016-10-11 20:46:15
回答 2查看 923关注 0票数 1

我正在尝试使用Visual Studio解决方案创建新的Sitecore项。但是当我调用master数据库时,我得到了错误Could Not read Sitecore Configuration。我知道这个问题已经被问过了,但我不清楚提供的解决方案。

谁能告诉我哪些发布值可能会被我的web.config文件覆盖,这样我就可以纠正它了。

提供的另一种解决方案是为IIS用户提供对网站文件夹的编辑/修改访问权限。这对我不起作用。

代码语言:javascript
复制
public class MyItem
{
    public void CreateItem()
    {
        using (new Sitecore.SecurityModel.SecurityDisabler())
        {
            Sitecore.Data.Database masterDB = Factory.GetDatabase("master");               
            Item parentItem = masterDB.GetItem(new ID("{140DC116-E743-4C02-9F08-CB73151A5163}"));
            TemplateItem template = masterDB.GetTemplate(new ID("{C9B284A6-0427-4296-8217-E8A3F728D8F0}"));

            parentItem.Add("RanjitAsset1", template);

        }
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-10-12 10:06:01

出现此问题的原因可能是,在您从VS发布解决方案后,您的web.config将被默认的ASP.net web.config覆盖。

您能否将您的网站web.config文件与全新sitecore安装中的文件进行比较?

票数 0
EN

Stack Overflow用户

发布于 2017-03-01 02:47:14

安德烈是对的。检查web.config,它可能在从Visual Studio发布时被覆盖。

代码语言:javascript
复制
<site 
        name="website" 
        virtualFolder="/"
        physicalFolder="/" 
        rootPath="/sitecore/content"
        startItem="/home"
        language="en" 
        **database="web"** 
        domain="extranet" 
        allowDebug="true" 
        cacheHtml="true" 
        htmlCacheSize="10MB" 
        enablePreview="true"
        enableDebugger="true" />

如果要切换数据库名称,可以使用桌面模式执行此操作。或者,通过添加?sc_content=database作为查询字符串参数。

通过该接口,您可以使用SoteContext切换上下文,并获取项目。另外,使用SelectSingleItem方法,它在文件夹中查找一个项目,如果存在,它将更新它,否则,它将创建它。

代码语言:javascript
复制
<!-- language: lang-cs -->  
public class MyItem
{
    public void CreateItem()
    {
        SiteContext targetSiteContext = SiteContext.GetSite(sitename);
        using (var context = new SiteContextSwitcher(targetSiteContext))
        {
            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                // do something on the new site context
                var title = @"You title goes here";
                var parentItem = Sitecore.Context.Database.GetItem(new Data.ID("{140DC116-E743-4C02-9F08-CB73151A5163}"));
                var template = Sitecore.Context.Database.GetTemplate(new Data.ID("{C9B284A6-0427-4296-8217-E8A3F728D8F0}"));
                var newItem = Sitecore.Context.Database.SelectSingleItem(parentItem.Paths.Path + "//*[@@name='" + title + "']") ?? template.CreateItemFrom(title, parentItem);
                try
                {
                    newItem.Editing.BeginEdit();
                    newItem.Fields["NewsTitle"].Value = title;
                    //Rest of the fields go here
                    newItem.Editing.AcceptChanges();
                    newItem.Editing.EndEdit();
                }
                catch (Exception ex)
                {
                    Diagnostics.Log.Error("Crawl Error: ", ex);
                    newItem.Editing.CancelEdit();
                }
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39977585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档