Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 站点丢失POST值时出现问题,出现意外302_C#_Asp.net_Opayo - Fatal编程技术网

C# 站点丢失POST值时出现问题,出现意外302

C# 站点丢失POST值时出现问题,出现意外302,c#,asp.net,opayo,C#,Asp.net,Opayo,我一直在努力解决Sagepay服务器集成到c#net网站的问题。起初,我认为Sagepay模拟器没有发回邮件 我后来发现(在日志记录过程中),模拟器正在将这些值发回站点,但随后会丢失这些值。我想这可能是global.asax中的一个问题 我试着在global.asax中对所有内容进行注释,但模拟器中的值仍然丢失 我一直在使用log4net跟踪各个阶段这是来自模拟器的调用之一,以及我的log4net如何将其放入数据库: 应用程序开始请求应用程序开始请求 Request.urlReferer:应用程

我一直在努力解决Sagepay服务器集成到c#net网站的问题。起初,我认为Sagepay模拟器没有发回邮件

我后来发现(在日志记录过程中),模拟器正在将这些值发回站点,但随后会丢失这些值。我想这可能是global.asax中的一个问题

我试着在global.asax中对所有内容进行注释,但模拟器中的值仍然丢失

我一直在使用log4net跟踪各个阶段这是来自模拟器的调用之一,以及我的log4net如何将其放入数据库:

应用程序开始请求
应用程序开始请求 Request.urlReferer:
应用程序\u BeginRequest Request.ServerVariables.Count:49
应用程序\u BeginRequest:Form 计数=16
应用程序\u AuthenticateRequest
应用程序\u EndRequest
应用程序\u PreSendRequestHeaders
应用程序\u呈现请求内容
应用程序\u结束
应用程序 已启动
应用程序\u开始请求
应用程序\u开始请求 Request.urlReferer:
应用程序\u BeginRequest Request.ServerVariables.Count:48
应用程序\u BeginRequest:Form 计数=0
申请开始请求。表格:
应用程序\u AuthenticateRequest
应用程序\u AuthenticateRequest
应用程序\u ResolveRequestCache

这一切都发生在几秒钟之内。在加载页面时,它丢失了post数据

这是我们在sagepay模拟器上得到的回报:

Raw Reponse from your Notification URL
Your Notification URL returned the following information in the response part of the POST. It has been formatted to wrap every 100 characters to make it more readable.

    <form method="post" action="/(A(ubPhPgmAzQEkAAAANzA1MTdhOTctZTJiZi00NzU3LWEyZjItODcxMzI2NW<BR>I3ZjA20))/PaymentGateway/SagePayServerReturn2.aspx" id="ctl00"><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMzIwOTI4NzM3ZGR7QWh08mOnnMUf7wtZMkwEWKknSW6n2TMurN5RJnAIbw==" />
但它仍然会在某些地方丢失post数据,因为它启动了两次应用程序

了解应用程序_BeginRequest触发两次的原因。当sage pay将数据发送到页面时,它将被重定向到同一页面


因此,它正在丢失那里的数据,但是我已经删除了所有重定向规则,它仍然在这样做。我们的解决方案中没有Response.Redriect()。因此,我不知道下一步该在哪里查找问题所在。

我们在web配置中发现了与匿名身份相关的问题

在这个范围内,设置了cookieless值,这使得它302到同一个页面,该页面将删除post值。直到我们检查了服务器日志,才发现它正在重发

这是代码:


因此,我们所做的就是去掉cookieless值,Sagepay现在可以实现一个梦想。

如果您在某些或所有控件上关闭viewstate,则可能会发生这种情况,没有viewstate的控件无法读回最后一篇文章并重新获得默认值,并且您认为这已经丢失了。。。是否已关闭某些控件上的viewstate?其他可能的原因可能是与您的程序交互的任何模块。我已尝试启用ViewState=“true”,但现在出现了不同的错误。这只会影响我加载的页面和该页面上加载的控件?EnableViewState=“true”仍然会在日志中显示结果并丢失该数据,然后出于某种原因删除表单上的数据。。。处理链中的一些东西…我一直在检查global.asax,因为我知道这是第一件要加载的事情,但最好在加载页面之前处理好它?
Status=INVALID
StatusDetail=Unable to find the transaction in our database.
RedirectURL=/PaymentGateway/SagePayOrderFailed.aspx?reasonCode=001