13

我正在使用 CC.NET 1.6 服务器及其相应的 CCTray,通过远程处理愉快地连接,但需要更改为通过 HTTP 使用仪表板连接,以便我可以开始将 URL 提供给开发人员。

将我的仪表板 URL 放入 CCTray:

http://localhost/CruiseControl/server/local/ViewServerReport.aspx

结果 CCTray 返回

Failed to connect to server: The remote server returned an error: (500) Internal Server Error.

如果我检查我的 IIS 日志,我可以看到请求已转换为到此位置的 POST,并且日志确认了 500 响应。

/CruiseControl/server/local/ViewServerReport.aspx/server/localhost/RawXmlMessage.aspx

如果我通过 GET 导航到该 URL - 我会收到一些带有错误“无法处理错误:根元素丢失”的 Xml。当然,这可能是我做 GET 而不是 POST 的产物。

注意:是的,我在 URL 中使用 localhost,因为它目前都包含在一台机器上,如果我能让它工作,那么我当然会更改为使用更好的主机名。

4

1 回答 1

10

升级到 cc.net 1.8 后解决了这个问题

1)检查dashboard.config 的服务器名称

使用 fiddler 观察请求通过并观察仪表板服务器名称

http://localhost/CruiseControl/server/yourdomain.com/ViewServerReport.aspx

在上述情况下,它是yourdomain.com

打开你的dashboard.config并确保有一个同名的条目

<server name="yourdomain.com" url="tcp://localhost:21234/CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" backwardsCompatible="false" />

2)检查 IIS 请求验证

检查您的应用程序池中是否有 Cruise Control 的 IIS。如果它是 .NET 4.0,那么您需要在 web.config 中使用它

<httpRuntime requestValidationMode = "2.0" />

该配置位于 cc.net 1.8 web.config 中,但需要取消注释

3)再试一次,你应该很好 - 如果不观察提琴手的反应

于 2012-08-02T04:07:48.493 回答