这不是我第一次使用这种方法发送一个员额的请求,并且我从未有过任何问题:

    public static Stream SendPostRequest(Uri uri, byte[] postData)
    {
        var request = WebRequest.Create(uri);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = postData.Length;
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(postData, 0, postData.Length);
        requestStream.Close();
        return request.GetResponse().GetResponseStream();
    }

在请求。GetRequestStream()我得到一个系统。网。WebException:基础连接被关闭:一个意想不到的错误发生在发送。
更有趣的,它工作得很好,对某些机器,但是没工作我的机器(Windows7测试)和生产服务器(Windows服务器2008年)。更多信息:

工作-Windows Xp.网2.0
工作-Windows Xp.净3.5
工作--Windows服务器2003-.净3.0
没工作-Windows Vista.净3.5
没工作-Windows服务器2008-.净3.5
没工作-Windows7Β-.净3.5SP1

尝试:

  • 堆东西从 在这里,, ,没有任何帮助。
  • 使用 Web客户端, ,没有什么改变。
  • 调整这些 选项, 但没有发现任何显着差异。
  • 试图 查看.一个非常好的工具。

[解决。有点]
我忘了说了,但是Uri https...我试图http,它的工作。真不敢相信,我没有尝试,迟早...
仍然,我将不胜感激,如果有人将闪耀光在这整个的情况。

有帮助吗?

解决方案

我的第一个计划的攻击是使用 查看 来看看发生了什么事处网络的水平在每一种情况。看看有什么每个机发送。

此外,你已经指出的差异之间的操作系统,但它们都具有完全相同的版本。网(下SP)安装?

其他提示

做得到工作?也许这是一个代理配置问题(proxycfg 等等)。

还把事情简单化(减少的数量未知数),考虑使用 WebClient 要做到的员额:

using (WebClient client = new WebClient())
{
    client.Headers.Add("content-type","application/x-www-form-urlencoded");
    client.UploadData(address, data);
    // or more simply
    client.UploadValues(address, nameValuePairs);
}

试着调整一个或多个下列选项:

  • SendChucked
  • AllowAutoRedirect
  • TransferEncoding

也可以尝试以注意它们之间的差异与你的各种各样的配置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top