我正在使用 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,因为它目前全部包含在一台计算机上,如果我能让它工作,那么我当然会更改为使用更好的主机名。
升级到 cc.net 1.8 后解决了这个问题
1) 检查dashboard.config中的服务器名称
使用 fiddler 观察请求的执行情况并观察仪表板服务器名称
http://localhost/CruiseControl/server/yourdomain.com/ViewServerReport.aspx
在上面的情况下是yourdomain.com
打开仪表板.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)再试一次,你应该很好 - 如果没有观察 fiddler 中的响应
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)