Ответ HTTP 500, соединяющий CCTray с сервером CC.NET через панель мониторинга через RawXmlMessage.aspx
Я использую сервер 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
Если я перехожу на этот URL через GET - я получаю XML с ошибкой "Невозможно обработать ошибку: корневой элемент отсутствует". Это может быть артефактом того, что я делаю GET вместо POST, конечно.
Примечание. Да, я использую localhost в URL-адресе, поскольку в настоящий момент он содержится на одной машине, и если я смогу заставить это работать, я, конечно, перейду на более подходящее имя хоста.
1 ответ
Сработало после обновления до 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
Проверьте пул приложений на наличие круиз-контроля IIS. Если это.NET 4.0, то вам нужно это в вашем web.config
<httpRuntime requestValidationMode = "2.0" />
Этот конфиг находится в cc.net 1.8 web.config, но требует раскомментирования
3) Попробуй еще раз, у тебя должно получиться хорошо - если не соблюдаешь ответы в фиддлере