Sitecore:创建新的<site>等于具有不同主机名的现有<site>会导致“找不到布局”错误</site>

时间:2015-04-07 12:34:58

标签: iis layout sitecore hostname

我希望能够从两个不同的主机名访问我的Sitecore网站,为此我在web.config中的<sites>下创建了一个新条目;这里是代码片段(我省略了不相关的部分):

<site name="Site1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.dev" />
<site name="Site2" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.mydev" />

我已经保存了配置并重新发布了整个网站,但是无济于事:如果我访问第二个网站,我会收到“找不到所请求文档的布局”。错误,显然是从请求布局{00000000-0000-0000-0000-000000000000}生成的。

IIS配置正确,两个主机名都映射到相关网站中的同一个端口 - 但只有其中一个工作。

我错过了一些非常明显的东西吗?

编辑:完整的网站条目如下:

<site name="Site1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.dev" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
<site name="Site2" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.mydev" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>

4 个答案:

答案 0 :(得分:6)

是。缺少StartItem。但是对于您想要的,使用管道分隔符而不是两个单独的网站定义,在同一属性中分隔多个主机名。

答案 1 :(得分:0)

试试这个:

<site name="Site1" hostName="Site1.dev" virtualFolder="/" physicalFolder="/"  rootPath="/sitecore/content/Site1" startItem="/home" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enableAnalytics="true" enablePreview="false" enableWebEdit="false" enableDebugger="false" disableClientData="false" />
<site name="Site2" hostName="Site2.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/Site1" startItem="/home" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="false" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="false" enableWebEdit="false" enableDebugger="false" disableClientData="false" />` 

答案 2 :(得分:0)

这里最有可能发生的是SiteResolver管道进程实际上没有达到您认为应该的网站定义。这是我看的第一个地方。确保定义了一个默认的catch-all站点(没有hostName)并在那里删除基本渲染,以便您可以轻松识别它。话虽这么说,马克的答案是要走的路。

编辑:还要记住网站定义的顺序在这里很重要。

答案 3 :(得分:0)

在“site”节点上设置targetHostName属性,并将Rendering.SiteResolving设置为true。

<site name="Site1" hostName="mysyte.dev" targetHostName="mysyte.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
<site name="Site2" hostName="mysyte.mydev" targetHostName="mysyte.mydev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>