PrivatePath = bin 调用程序集:(未知)。

PrivatePath = bin 调用程序集:(未知)。

我正在尝试在装有 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 管理工具中:

  1. 将虚拟目录映射到 CCNet 文件夹(通常称为 ccnet)的“webdashboard”子文件夹
  2. 在此虚拟目录的配置中,单击虚拟目录选项卡的配置按钮
  3. 单击“添加”以添加新的应用程序映射
  4. 在可执行文件中,输入您使用的文件的位置aspnet_isapi.dll(以 .aspx 映射为例。典型值是c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dllCruiseControl.NET 版本 1.2.1 或更早版本,或c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll更高版本)
  5. 在扩展中,输入.xml
  6. 确保已检查脚本引擎,并且未检查文件是否存在
  7. 根据需要单击“确定”以保存更改
  8. 在虚拟目录的“文档”选项卡下,确保将 default.aspx 添加为默认文档

如果出现“找不到页面”错误

Windows 2003 中的安全设置禁止 ASP.NET ISAPI。以下是解决此问题的方法:

  1. 在 IIS 中单击“Web 服务扩展”
  2. 选择“所有未知的 ISAPI 扩展”
  3. 点击“允许”
  4. 选择“ASP.NET vx.x”
  5. 点击“允许”

相关内容