我的 CruiseControl.NET 项目的发布者区域中有一个合并任务,它成功地将一组 html 和 png 文件复制到工件目录。我在仪表板中启用了HtmlReportPlugin,如下所示:
<buildPlugins>
<buildReportBuildPlugin>
<xslFileNames>
<xslFile>xsl\header.xsl</xslFile>
<xslFile>xsl\compile.xsl</xslFile>
<xslFile>xsl\modifications.xsl</xslFile>
<xslFile>xsl\MsTestSummary2010.xsl</xslFile>
</xslFileNames>
</buildReportBuildPlugin>
<buildLogBuildPlugin />
<xslReportBuildPlugin description="MSTest2010 Report" actionName="MSTestBuildReport2010" xslFileName="xsl\MsTestReport2010.xsl"></xslReportBuildPlugin>
<xslReportBuildPlugin description="MSTest Coverage 2010" actionName="MSTestBuildCoverReport2010" xslFileName="xsl\MsTestCover2010.xsl"></xslReportBuildPlugin>
<htmlReportPlugin description="Html Report" actionName="HtmlReport" htmlFileName="index.html" />
</buildPlugins>
index.html 提供得很好,但 index.html 中的相对链接似乎不起作用。下面是 index.html 的源代码:
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN'
'http://www.w3.org/TR/html4/frameset.dtd'>
<html><head><title>
all.cov
</title>
<meta http-equiv=Content-Type content='text/html;charset=utf-8'>
</head>
<frameset cols='25%,75%'>
<frame src=nav-folder.html>
<frame name=right src=p0.html>
<noframes>
<p>Your browser does not support frames. See <a href=nav-folder.html>nav-folder.html</a>
</noframes>
</frameset>
</html>
这是我在加载 index.html 时遇到的错误之一(将 'nav-folder' 替换为 'p0' 以获得其他错误消息):
“/”应用程序中的服务器错误。
未知对象名称:导航文件夹
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ApplicationException:未知对象名称:导航文件夹
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[ApplicationException: Unknown object name : nav-folder]
Objection.ObjectionStore.GetByName(String name) +307
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionFactory.CreateHandler(String actionName) +231
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise .CruiseActionFactory.Create(IRequest request) +38
ThoughtWorks.CruiseControl.WebDashboard.MVC.RequestController.Do() +155 ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET.HttpHandler.ProcessRequest(HttpContext context) +651
System.Web.CallHandlerExecutionStep. System.Web.HttpApplication.IExecutionStep.Execute() +625 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +27
如果我在任一参考文件(例如http://localhost/server/local/project/Code_Coverage/build/log20120809181334Lbuild.168.xml/RetrieveBuildFile.aspx?file=p0.html
)上使用 RetrieveBuildFile.aspx,文件加载没有问题,但与第一个示例一样,任何相关文件都将无法加载。
我必须在 CruiseControl.NET web.config 中做些什么才能让 IIS 正确解析相对文件路径?我正在使用 CruiseControl.NET 1.8.0 并且我正在运行在 Windows 2008 上运行的 IIS 7,并且我已验证在 CruiseControl.NET 1.6 上发生了同样的问题?在 Windows 7 上运行的 IIS 上。