通过仪表板通过RawXmlMessage.aspx将CCTray连接到CC.NET服务器的HTTP 500响应 [英] HTTP 500 response connecting CCTray to CC.NET server via dashboard via RawXmlMessage.aspx
问题描述
我正在使用CC.NET 1.6服务器及其相应的CCTray通过远程连接进行愉快的连接,但需要更改为通过HTTP使用仪表板连接,这样我才能开始将URL分发给开发人员。
将我的仪表板URL放入CCTray:
http:// localhost / CruiseControl / server / local /ViewServerReport.aspx
返回CCTray的结果
无法连接到服务器:远程服务器返回错误:(500)Internal Server Error。
如果我查看IIS日志,可以看到请求已变成该位置的POST,并且日志确认了500条响应。
/CruiseControl/server/local/ViewServerReport.aspx/server/localhost/RawXmlMessage.aspx
如果我通过GET导航到该URL,则会收到一些错误为无法处理错误:Root的Xml元素丢失。当然,这可能是我执行GET而不是POST的产物。
注意:是的,我正在URL中使用localhost,因为目前所有这些都包含在一台计算机上,如果我可以使它工作,那么我当然会更改为使用更好的主机名。
升级到cc.net 1.8后解决此问题
1)检查dashboard.config中的服务器名称
使用提琴手观看请求并观察仪表板服务器名称
http://localhost/CruiseControl/server/yourdomain.com/ViewServerReport.aspx
在上述情况下,它是 yourdomain.com
打开您的dashboard.config,并确保有一个同名条目
<服务器名=您的域。 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)再试一次,您应该很好-如果没有观察到提琴手的反应
I'm using CC.NET 1.6 server and its corresponding CCTray connecting happily via remoting but need to change to use the dashboard connection via HTTP so that I can start farming the URL out to developers.
Putting my dashboard URL into CCTray:
http://localhost/CruiseControl/server/local/ViewServerReport.aspx
Results in CCTray returning
Failed to connect to server: The remote server returned an error: (500) Internal Server Error.
If I check my IIS logs, I can see the request was turned into a POST to this location and the log confirms the 500 response.
/CruiseControl/server/local/ViewServerReport.aspx/server/localhost/RawXmlMessage.aspx
If I navigate to that URL via GET - I get some Xml with error "Unable to process error: Root element is missing". This could be an artifact of me doing a GET instead of a POST of course.
Note: Yes I am using localhost in the URL as it is all contained on the one machine at the moment, if I can get this to work then I will of course change to use better hostname.
Worked this out after upgrading to cc.net 1.8
1) Check dashboard.config for server name
Use fiddler to watch the request go through and observe the dashboard server name
http://localhost/CruiseControl/server/yourdomain.com/ViewServerReport.aspx
In the above case it is yourdomain.com
Open your dashboard.config and make sure there is an entry with the same name
<server name="yourdomain.com" url="tcp://localhost:21234/CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" backwardsCompatible="false" />
2) Check IIS request validation
Check your application pool for Cruise Control's IIS. If it is .NET 4.0 then you need this in your web.config
<httpRuntime requestValidationMode = "2.0" />
That config is sitting in cc.net 1.8 web.config but needs uncommenting
3) Try again, you should be good - if not observe responses in fiddler
这篇关于通过仪表板通过RawXmlMessage.aspx将CCTray连接到CC.NET服务器的HTTP 500响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!