我正在调试Azure架构,该架构由对应用程序服务执行CORS请求的Blob存储帐户组成。使用Signalr核心“ Long polling”设置请求配置。在第九次协商请求由于502 bad gateway
错误而失败之前,CORS配置似乎正在工作。 DNS记录通过Cloudflare的路由,该Cloudflare提供DDOS保护/速率限制。
我的直觉告诉我,这是由JSON序列化期间的无限循环引起的。服务器重新启动或进行其他操作后,无法将通常执行的Access-Control-Allow-Origin
标头添加到前8个请求中。
我需要使用上述工具来创建一致的流式连接的帮助。这将涉及解决bad gateway
错误。
信号服务器配置
https://github.com/DoubleCouponDay/portfolio/blob/master/server/portfolio/Startup.fs
信号客户端配置
https://github.com/DoubleCouponDay/portfolio/blob/master/client/src/app/services/music.service.ts
答案 0 :(得分:0)
通常,由于随机服务器崩溃,大多数人会因Signalr收到502错误的网关错误。没有一致的错误会总是与阅读此答案的人们的情况相符,因此在将来,错误的网关对于Signalr来说是非常普通的请求崩溃。
就我而言,这是由Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzfjTeLXzaEUrfSO1
导致,它是从文件读取X509证书时引起的。该错误不会传播到Signalr客户端或Azure日志,因此必须进行远程调试才能检测到该错误。
解决方案是将WindowsCryptographicException
枚举作为参数传递给我的X509KeyStorageFlags.MachineKeySet
对象,而不是其他选择。这是因为服务器将证书存储在本地计算机存储中,而不是用户存储中。