Octo 推送失败并出现 json 错误(Octopus 部署)

Octo fails on push with json error (Octopus Deploy)

我们正在使用 octo 打包并将我们的包推送到八达通服务器。我们 运行 的命令在下面,这是有效的,现在我们遇到了一个非常奇怪的反序列化错误。

octo.exe push --server http://51..../ --apikey SECRET --package C:\TeamCity\buildAgent\temp\buildTmp\ZipPreprocessor1003810446440595334.zip --replace-existing --debug

之前我们曾经得到

octo.exe push --server http://51......../ --apikey SECRET --package C:\TeamCity\buildAgent\temp\buildTmp\ZipPreprocessor8586972988812470737.zip --replace-existing --debug
Pushing packages to Octopus server
Octopus Deploy Command Line Tool, version 4.31.1

Handshaking with Octopus server: http://51......./
Handshake successful. Octopus version: 2018.3.1; API version: 3.0.0
Authenticated as: admin <null> 
Pushing package: C:\TeamCity\buildAgent\temp\buildTmp\ZipPreprocessor8586972988812470737.zip...
Push successful
Octo.exe exit code: 0

现在我们得到这个 json 异常

octo.exe push --server http://51....../ --apikey SECRET --package C:\TeamCity\buildAgent\temp\buildTmp\ZipPreprocessor1003810446440595334.zip --replace-existing --debug
Pushing packages to Octopus server
Octopus Deploy Command Line Tool, version 4.31.1


Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
   at Newtonsoft.Json.JsonTextReader.ParseValue()
   at Newtonsoft.Json.JsonTextReader.Read()
.... stack trace 

有谁知道 octo.exe 在输出消息之前尝试读取哪些文件,或者知道这里发生了什么。

出现错误 JsonReaderException: Unexpected character encountered while parsing value: <. 是因为 Octo.exe 在 HTTP 调用后期待一个 JSON blob,而是收到一个 HTML 文档(以 <).

我建议您在 运行 宁 Octo.exe 所在的机器上设置 Fiddler,然后再次尝试 运行 该命令。这样您就可以检查返回的完整 HTML,它的正文中将包含您关心的实际错误消息。