【发布时间】:2012-03-23 09:07:19
【问题描述】:
我在 Composite C1 中配置多个主机名时遇到问题。
背景:
我在 C1 中有两个网站:site1 和 site2。 C1 安装主要用于 site1,并与主机 www.site1.com(和别名 site1.com)一起使用。
现在,我已将另一个站点 site2 添加到 C1。浏览到 site1.com/site2 时,我最终进入了 site2 网站。一切都好。
然后我尝试将另一个主机名 www.site2.com 添加到 URL 配置 -> 主机名。添加 www.site2.com 并浏览到 www.site2.com 后,出现以下异常:“项目已添加。在字典中键入:''正在添加的键:''”
堆栈跟踪如下所示:
[ArgumentException:项目已被添加。字典中的键:''正在添加的键:''] System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) +9353115 System.Collections.Hashtable.Add(对象键,对象值)+11 Composite.Core.Collections.Generic.Hashtable`2.Add(TKey key, TValue value) +105 Composite.Plugins.Routing.Pages.PageUrlBuilder.BuildUrlSet(IPage page, Guid parentPageId) +1935 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.BuildFolderPaths(SitemapBuildingData pagesData,IEnumerable`1 元素,IDictionary`2 urlToIdLookup,IPageUrlBuilder 构建器)+253 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.BuildMap(UrlSpace urlSpace) +2200 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.GetMap(PublicationScope 发布范围,CultureInfo 本地化范围,UrlSpace urlSpace) +482 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.GetPageUrlBuilder(PublicationScope 发布范围,CultureInfo 本地化范围,UrlSpace urlSpace)+9 Composite.Plugins.Routing.Pages.DefaultPageUrlProvider.ParseUrl(字符串 relativeUrl,UrlSpace urlSpace,UrlKind& urlKind)+311 Composite.Plugins.Routing.Pages.DefaultPageUrlProvider.ParseUrl(字符串 absoluteUrl,UrlKind&urlKind)+306 Composite.Core.Routing.Pages .C1PageRoute.GetRouteData(HttpContextBase 上下文) +156 System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +287 System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase 上下文) +60 System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +86 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
有人对此有解决方案吗?
提前谢谢...
更新:
更改 Dmitry Dzygin 建议的 dll 后,我得到以下堆栈跟踪:
[ArgumentException:项目已被添加。字典中的键:''正在添加的键:''] System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) +9353115 System.Collections.Hashtable.Add(对象键,对象值)+11 Composite.Core.Collections.Generic.Hashtable`2.Add(TKey key, TValue value) in c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\Collections\Generic\Hashtable.cs:28 Composite.Plugins.Routing.Pages.PageUrlBuilder.BuildUrlSet(IPage page, Guid parentPageId) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Plugins\Routing\Pages\PageUrlBuilder.cs:190 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.BuildFolderPaths(SitemapBuildingData pagesData, IEnumerable`1 元素, IDictionary`2 urlToIdLookup, IPageUrlBuilder builder) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\ WebClient\Renderings\Page\PageStructureInfo.cs:630 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.BuildFolderPaths(SitemapBuildingData pagesData, IEnumerable`1 根, IPageUrlBuilder pageUrlBuilder, IDictionary`2 urlToIdLookup) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\ WebClient\Renderings\Page\PageStructureInfo.cs:612 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.BuildMap(UrlSpace urlSpace) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\WebClient\Renderings\Page\PageStructureInfo.cs:559 C:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\WebClient\Renderings\Page\PageStructureInfo 中的 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.GetMap(PublicationScope 发布范围,CultureInfo 本地化范围,UrlSpace urlSpace) .cs:277 C:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\WebClient\Renderings\Page\PageStructureInfo 中的 Composite.Core.WebClient.Renderings.Page.PageStructureInfo.GetPageUrlBuilder(PublicationScope 发布范围,CultureInfo 本地化范围,UrlSpace urlSpace) .cs:342 Composite.Plugins.Routing.Pages.DefaultPageUrlProvider.ParseUrl(String relativeUrl, UrlSpace urlSpace, UrlKind& urlKind) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Plugins\Routing\Pages\DefaultPageUrlProvider.cs:249 Composite.Plugins.Routing.Pages.DefaultPageUrlProvider.ParseUrl(String absoluteUrl, UrlKind& urlKind) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Plugins\Routing\Pages\DefaultPageUrlProvider.cs:206 Composite.Core.Routing.Pages.C1PageRoute.GetRouteData(HttpContextBase context) 在 c:\Builds\1\Freja\CodeplexBuild\Sources\Public\Composite\Core\Routing\Pages\C1PageRoute.cs:90 System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +287 System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase 上下文) +60 System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +86 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
【问题讨论】: