C# StreamReader,请求错误(400)

C# StreamReader,请求错误(400),c#,asp.net,iis-7,C#,Asp.net,Iis 7,我们有一个允许固件下载的网站 在这个过程中,它使用了StreamReader。由于一些未知的原因,一些客户(在以色列)收到一个400错误的请求。其他所有人都不会得到这个错误 有人也经历过同样的事情吗?有人有线索吗 protected void Page_Load(object sender, EventArgs e) { string strURL = Request.Url.Host; System.Net.WebRequest reqPT = System.Net.WebRe

我们有一个允许固件下载的网站

在这个过程中,它使用了StreamReader。由于一些未知的原因,一些客户(在以色列)收到一个400错误的请求。其他所有人都不会得到这个错误

有人也经历过同样的事情吗?有人有线索吗

protected void Page_Load(object sender, EventArgs e)
{
    string strURL = Request.Url.Host;
    System.Net.WebRequest reqPT = System.Net.WebRequest.Create("http://" + strURL + "/Products/ProductTree.asp");
    System.IO.StreamReader srPT = new System.IO.StreamReader(reqPT.GetResponse().GetResponseStream());
    dvPT.Controls.Add(new LiteralControl(srPT.ReadToEnd()));
}
它在新的StreamReader上崩溃了,仅对他们而言

谢谢大家!


更新:我们注意到客户实际上丢失了地址(strURL)中的“www”,这导致了错误。为什么有人(点击与地球其他地方相同的链接)会丢失www??对于完全相同的代码,我看到了两种不同的行为:S

由于HTTP 400错误,请求的URL可能无效,而且由于
System.Net.WebRequest
中的文字看起来不错,我猜您的以色列用户请求页面时使用的
Request.URL.Host
与其他用户不同。你能调试并验证strUrl的值吗?

@pseudocoder我检查了URL,它很完美。客户发送了一个屏幕截图。但是他的FireFox是希伯来语的,这可能是一个因素吗?@David嗯,请求不是由客户端浏览器制定的,所以这不重要。如果
strURL
是您想要的值,则应对任何用户进行相同的处理。当你说你检查了网址,你的意思是你检查了他的截图中的地址栏吗?如果是这样的话,我认为您应该更深入地了解服务器端在处理他的请求时发生了什么。@Pseudocoder tkx获取提示!strURL实际上错过了www,但不是每个人都错过了!即使每个人都有相同的链接@大卫:嗯,很奇怪。我不知道我是否能解释这个问题,但很高兴我让你找到了问题的根源。用户是否可能在原始请求中请求了domain.com vs.www.domain.com?如果你觉得合适的话,别忘了标记为答案。@pseudocoder最初的请求是与www。。。很奇怪。如果明天没有人能提出更好的解决方案/建议,我会接受你的回答。无论如何,谢谢你;)