问题描述
我们面临这个问题:我们有一个用 C# 编写并使用 .Net 4.7 的自托管应用程序,它运行一个 signalR 服务器,以及一个用 JavaScript (2.1) 编写的 signalR 客户端,托管在一个 web 应用程序中,运行在 IIS 下。
有一个负载均衡器 (apache) 可以在客户端和服务器之间重定向请求。
客户端请求是跨域请求,因为web应用域和signalR服务器域不同。
如果signalR客户端使用signalR服务器域向服务器发送请求,则该请求成功。另一方面,如果客户端使用 Web 应用程序域向服务器发送请求,此请求会通过负载均衡器,客户端会收到以下错误消息:
“400 – 错误请求 – 无效主机名”
我们已经使用wireshark来嗅探客户端和服务器之间交换的数据包,当客户端发出跨域请求时,我们注意到apache服务器在客户端请求中添加了以下标头:
x-forwarded-for:
x-forwarded-host
x-转发服务器
如果 x-forwarded-host e x-forwarded-server 值似乎是正确的(它们包含 Web 应用程序域),则 x-forwarded-for 标头包含未转发请求的主机的 IP 地址列表正确的方法,因为signalR服务器ip地址不同,不包含在这个字段中。
我们想知道是否有办法通过signalR客户端或signalR服务器的代码来指定一些可以让我们解决这个问题的东西。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)