HTTP 500响应通过仪表板通过RawXmlMessage.aspx将CCTray连接到CC.NET服务器

fia*_*iat 13 cruisecontrol.net cctray

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

将我的仪表板URL放入CCTray:

http://localhost/CruiseControl/server/local/ViewServerReport.aspx
Run Code Online (Sandbox Code Playgroud)

结果在CCTray返回

Failed to connect to server: The remote server returned an error: (500) Internal Server Error.
Run Code Online (Sandbox Code Playgroud)

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

/CruiseControl/server/local/ViewServerReport.aspx/server/localhost/RawXmlMessage.aspx
Run Code Online (Sandbox Code Playgroud)

如果我通过GET导航到该URL - 我得到一些错误的"Xml""无法处理错误:缺少根元素".这可能是我做GET而不是POST的工件.

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

fia*_*iat 10

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

1)检查dashboard.config以获取服务器名称

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

http://localhost/CruiseControl/server/yourdomain.com/ViewServerReport.aspx
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,它是yourdomain.com

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

<server name="yourdomain.com" url="tcp://localhost:21234/CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" backwardsCompatible="false" />
Run Code Online (Sandbox Code Playgroud)

2)检查IIS请求验证

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

<httpRuntime requestValidationMode = "2.0" />
Run Code Online (Sandbox Code Playgroud)

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

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