通过代理向子域发出Https请求失败,单声道404响应

时间:2012-10-02 17:06:27

标签: https proxy mono httpwebrequest http-status-code-404

我有以下问题,我使用HttpWebRequest从使用mono的应用程序中的web获取一些数据。应用程序也使用代理(没有身份验证的squid)。大多数请求都转到https://service.domain.com并且效果很好,但是当我尝试访问https://data.domain.com时,我会收到404回复。

如果我交换请求并首先请求转到https://data.domain.com - 它可以正常工作,但下一次https://service.domain.com请求将失败。

我只在带有https和代理的单声道上遇到此问题。

有任何建议或解决方法吗?

1 个答案:

答案 0 :(得分:1)

如果这是我上周(实际上是星期五)发现的同一个错误,我认为你会发现同样的HttpWebRequest对象(或支持连接对象 - 我从未检查过)正在被重用,但是连接对旧服务器(在您的情况下为https://service.domain.com)保持打开状态,并且新的GET / POST调用重新使用该连接,而不是强制它连接到data.domain.com,就像它应该的那样。

我解决这个问题的方法是将第一台服务器的KeepAlive设置为false(我只做了1个请求),这样当我切换到第二台服务器时,它会强制重新连接(此时我将KeepAlive设置回来)真的)。

另一种方法可能是同时创建2个Web请求(每个服务器一个),这样它们就不会被重用。

我应该在星期五提交这个,但是没有解决它,因为忘记了。你刚才提醒我,所以我刚刚提交了它:

https://bugzilla.xamarin.com/show_bug.cgi?id=7599

随意添加到抄送列表中,并提供您认为我可能错过的任何其他信息。