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 を読み込むときに表示されるエラーの 1 つを次に示します (他のエラー メッセージについては、「nav-folder」を「p0」に置き換えてください)。
「/」アプリケーションでサーバー エラーが発生しました。
不明なオブジェクト名: nav-folder
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.ApplicationException: 不明なオブジェクト名: nav-folder
ソース エラー:
現在の 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 リクエスト) +38
ThoughtWorks.CruiseControl.WebDashboard.MVC.RequestController.Do() +155 ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET.HttpHandler.ProcessRequest(HttpContext コンテキスト) +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 を使用すると、ファイルは問題なく読み込まれますが、最初の例のように、相対ファイルは読み込まれません。
IIS で相対ファイル パスを正しく解決するために、CruiseControl.NET web.config で何かしなければならないことはありますか? CruiseControl.NET 1.8.0 を使用しており、Windows 2008 で IIS 7 を実行しています。CruiseControl.NET 1.6 でも同じ問題が発生することを確認しました?? Windows 7 で実行されている IIS で。