Exception &引用;请求被中止:请求被取消;在处理PayPal IPN时

Exception &引用;请求被中止:请求被取消;在处理PayPal IPN时,exception,utf-8,paypal-ipn,Exception,Utf 8,Paypal Ipn,我有以下C#ASP.Net代码,用于在购买后处理PayPal IPN。我已将PayPal设置中的编码设置为UTF8。当我用ASCII编码(代码中的所有UTF8替换为ASCII)将请求发送回PayPal时,一切正常。当我使用UTF8编码发送请求时,我收到“请求被中止:请求被取消”。最后一行streamOut.Close()处出现异常。我正在使用启用IIS 7和.Net 2的Godaddy共享主机。有什么建议吗 受保护的无效页面加载(对象发送方,事件参数e) { string strequest=s

我有以下C#ASP.Net代码,用于在购买后处理PayPal IPN。我已将PayPal设置中的编码设置为UTF8。当我用ASCII编码(代码中的所有UTF8替换为ASCII)将请求发送回PayPal时,一切正常。当我使用UTF8编码发送请求时,我收到“请求被中止:请求被取消”。最后一行streamOut.Close()处出现异常。我正在使用启用IIS 7和.Net 2的Godaddy共享主机。有什么建议吗

受保护的无效页面加载(对象发送方,事件参数e)
{
string strequest=string.Empty;
尝试
{
字符串strLive=”https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(strLive);
req.KeepAlive=false;
req.ReadWriteTimeout=600000;
请求超时=600000;
//设置请求返回的值
请求方法=“POST”;
req.ContentType=“应用程序/x-www-form-urlencoded”;
byte[]param=Request.BinaryRead(HttpContext.Current.Request.ContentLength);
strRequest=Encoding.UTF8.GetString(参数);
strRequest+=“&cmd=_notify-validate”;
req.ContentLength=System.Text.Encoding.UTF8.GetByteCount(strRequest);
//将请求发送到PayPal并获得响应
Stream RequestStream=req.GetRequestStream();
StreamWriter streamOut=新的StreamWriter(RequestStream,System.Text.Encoding.UTF8);
RequestStream.ReadTimeout=600000;
RequestStream.WriteTimeout=600000;
streamOut.Write(strRequest);
streamOut.Close();//异常:“请求被中止:请求被取消。”

事实证明,无论如何都必须使用Encoding.ASCII,因为字符串是URL编码的