我正在尝试在装有 IIS6 的 Windows Server 2003 机器上运行 Cruise Control.net Web 仪表板,当我转到仪表板的默认登录页面时遇到以下错误:
描述:处理服务此请求所需的配置文件时发生错误。请查看以下具体错误详细信息并适当修改配置文件。
解析器错误消息:文件“ThoughtWorks.CruiseControl.WebDashboard”的格式无效。
源错误:
第 8 行:第 9 行:第 10 行:第 11 行:第 12 行:
源文件:C:\CruiseControl\Application\webdashboard\web.config
行:10程序集加载跟踪:以下信息有助于确定为什么无法加载程序集“ThoughtWorks.CruiseControl.WebDashboard”。
=== 预绑定状态信息 === LOG:DisplayName = ThoughtWorks.CruiseControl.WebDashboard(部分)LOG:Appbase = file:///C:/CruiseControl/Application/webdashboard LOG:初始
PrivatePath = bin 调用程序集:(未知)。
日志:此时未将策略应用于引用(私有、自定义、部分或基于位置的程序集绑定)。日志:策略后引用:ThoughtWorks.CruiseControl.WebDashboard 日志:尝试下载新的 URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/cruisecontrol/c8c373af/413fb329/ThoughtWorks.CruiseControl.WebDashboard.DLL。日志:尝试下载新的 URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/cruisecontrol/c8c373af/413fb329/ThoughtWorks.CruiseControl.WebDashboard/ThoughtWorks.CruiseControl.WebDashboard.DLL。日志:尝试下载新的 URL 文件:///C:/CruiseControl/Application/webdashboard/bin/ThoughtWorks.CruiseControl.WebDashboard.DLL。
如您所见,错误表明问题出在 web.config 的第 8、9、10、11、12 行 - 如下所示:
<system.web>
<httpHandlers>
<add verb="*" path="*.aspx" type="ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET.HttpHandler,ThoughtWorks.CruiseControl.WebDashboard"/>
<add verb="*" path="*.xml" type="ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET.HttpHandler,ThoughtWorks.CruiseControl.WebDashboard"/>
</httpHandlers>
因此,在 Windows 7 或 Windows Server 2008 上的 IIS7 或 IIS7.5 中,相同的配置无需任何修改即可运行。我猜测根本原因是 IIS6 无法理解某些声明 - 但我不确定。
有人知道我该如何重构我的 web.config 文件以便可以在 IIS6 中运行 Cruise Control.NET 吗?
我还应该提到,我没有向我的 IIS6 配置添加任何 ISAPI 过滤器或任何东西。我不确定是否需要向 IIS6 注册 dll。
答案1
看起来它正在尝试使用 .Net 1.1,而较新版本的 CruiseControl 需要 .Net 2.0(请参阅这里:“至少需要 .NET 2.0 或 Mono 2.10”)。
您可能还想确保已在 IIS 中注册了 .Net 2。您可以通过运行aspnet_regiis.exe
中找到的方法来执行此操作\Windows\Microsoft.NET\Framework\v2.0.50727\
。
以下是更多信息讨论在 IIS6 中安装 CruiseControl.net:
为 IIS 6.0 配置 CruiseControl.NET
在系统的 IIS 管理工具中:
- 将虚拟目录映射到 CCNet 文件夹(通常称为 ccnet)的“webdashboard”子文件夹
- 在此虚拟目录的配置中,单击虚拟目录选项卡的配置按钮
- 单击“添加”以添加新的应用程序映射
- 在可执行文件中,输入您使用的文件的位置
aspnet_isapi.dll
(以 .aspx 映射为例。典型值是c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
CruiseControl.NET 版本 1.2.1 或更早版本,或c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
更高版本) - 在扩展中,输入
.xml
- 确保已检查脚本引擎,并且未检查文件是否存在
- 根据需要单击“确定”以保存更改
- 在虚拟目录的“文档”选项卡下,确保将 default.aspx 添加为默认文档
如果出现“找不到页面”错误
Windows 2003 中的安全设置禁止 ASP.NET ISAPI。以下是解决此问题的方法:
- 在 IIS 中单击“Web 服务扩展”
- 选择“所有未知的 ISAPI 扩展”
- 点击“允许”
- 选择“ASP.NET vx.x”
- 点击“允许”