ASP.NET退出Post和Not executing Button方法



我有一个奇怪的状态,我希望有人能帮助我理解。在我的本地机器上似乎没有问题。我根本无法复制它。一旦我把它发布到GoDaddy上,它可以尝试大约10次,然后在搜索结果时停止发布。我进入开发工具,这就是我在工作时看到的。

成功的请求标头

POST /sms.aspx HTTP/1.1
Host: accounts.anywaymessaging.com
Connection: keep-alive
Content-Length: 1175
Cache-Control: max-age=0
Origin: http://accounts.anywaymessaging.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://accounts.anywaymessaging.com/sms.aspx
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: ASP.NET_SessionId=oxaywle1ttxshxlhz4213dqa; AnywayMsg=SessionID=4DC189DB-639F-4F15-9580-F4E197C6055E

成功的表单数据

__VIEWSTATE=%2FwEPDwUJLTczMjQxMjk5D2QWAmYPZBYCAgMPZBYCAgEPZBYGAgEPDxYGHgRUZXh0BRpFbnRlciB5b3VyIHNlYXJjaCBjcml0ZXJpYR4IQ3NzQ2xhc3MFDU1lc3NhZ2VTZWFyY2geBF8hU0ICAmRkAg0PDxYCHgdWaXNpYmxlZ2RkAg8PDxYCHwNoZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgYFKmN0bDAwJE1haW5Db250ZW50JGN0bDAyJGN0bDAxJGNoa1Bob25lSURfMQUqY3RsMDAkTWFpbkNvbnRlbnQkY3RsMDMkY3RsMDEkY2hrUGhvbmVJRF8xBSpjdGwwMCRNYWluQ29udGVudCRjdGwwNCRjdGwwMSRjaGtQaG9uZUlEXzIFKmN0bDAwJE1haW5Db250ZW50JGN0bDA0JGN0bDAyJGNoa1Bob25lSURfMwUqY3RsMDAkTWFpbkNvbnRlbnQkY3RsMDUkY3RsMDEkY2hrUGhvbmVJRF8yBSpjdGwwMCRNYWluQ29udGVudCRjdGwwNSRjdGwwMiRjaGtQaG9uZUlEXzPvxqxP2t7AR2NPGISth5gAC6gCQQSWFZKTuRoB4i%2ByVg%3D%3D
__VIEWSTATEGENERATOR=61D54015
__EVENTVALIDATION=%2FwEdAA3KY8iwC3SchtZa%2BhJ4vk3sZOgphDZcmnB6pJJ9qOUdhtfo3CKncsZOLGA4BvQGNRW6kLP4RbHpuFuwcTwWrQR81fh%2FXUFTtgMJaT8st%2Bn4LS8kePrLELX5WILj4FxliYJ1DTTEYS7ThpqL1ZXnH3qp793UO%2FrU2b3F%2BSVypjznlZJgraocwhIDauR3EkJNTnSKSiBcH244dTFtoKqbmNy9KOC6pxPTO3V2NoAkWjGKEINeivoCAKq90z1IaAALatXS%2Fva1qZEySGgoEEBy%2FMnRwdfH5f%2B2PnNQu1OPtJpRlUe%2FKw5rOkGskk3QcRPLQRw%3D
ctl00%24MainContent%24SearchType=First+Name
ctl00%24MainContent%24SearchFor=Gavin
ctl00%24MainContent%24SubmitButton=Search

失败的请求头

POST /SMS.aspx HTTP/1.1
Host: accounts.anywaymessaging.com
Connection: keep-alive
Content-Length: 659
Cache-Control: max-age=0
Origin: http://accounts.anywaymessaging.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://accounts.anywaymessaging.com/SMS.aspx
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: ASP.NET_SessionId=oxaywle1ttxshxlhz4213dqa; AnywayMsg=SessionID=E6C37891-711F-482C-A8AA-186D1AC81424

失败的表单数据

__VIEWSTATE=%2FwEPDwUJLTczMjQxMjk5D2QWAmYPZBYCAgMPZBYCAgEPZBYGAgEPDxYGHgRUZXh0BRpFbnRlciB5b3VyIHNlYXJjaCBjcml0ZXJpYR4IQ3NzQ2xhc3MFDU1lc3NhZ2VTZWFyY2geBF8hU0ICAmRkAg0PDxYCHgdWaXNpYmxlaGRkAg8PDxYCHwNoZGRkdevr7B%2Fbe77QB0dsrrmhG%2FEUUg8RBwxVImfFq5QsbNY%3D
__VIEWSTATEGENERATOR=61D54015
__EVENTVALIDATION=%2FwEdAAit83DFYOYQTsHWSO8TDCY1ZOgphDZcmnB6pJJ9qOUdhtfo3CKncsZOLGA4BvQGNRW6kLP4RbHpuFuwcTwWrQR81fh%2FXUFTtgMJaT8st%2Bn4LS8kePrLELX5WILj4FxliYJ1DTTEYS7ThpqL1ZXnH3qp793UO%2FrU2b3F%2BSVypjznlX1tjd1b5DoWbPIBmwacr1wQ7YlnCXd1W9fI%2FSD%2Ffv4d
ctl00%24MainContent%24SearchType=First+Name
ctl00%24MainContent%24SearchFor=Gavin
ctl00%24MainContent%24SubmitButton=Search

正如您所看到的,只有__EVENTVALIDATION部分不同。在服务器端代码中,我做得很简单,验证这不是因为其他代码,并这样做了。

protected void Page_Load(object sender, EventArgs e)
{
Javascript.ConsoleLog($"Page_Load: {Request.Form}");
SubmitButton.Click += new EventHandler(this.SearchBtn_Click);
}
protected void SearchBtn_Click(Object sender, EventArgs e)
{
Javascript.ConsoleLog($"SearchBtn_Click: {Request.Form}");
}

当它停止工作时,SearchBtn永远不会被激发,Page_Load也会被激发,但没有表单数据。知道是什么原因造成的吗?起初,我认为它是缓存,但我已经在响应数据和HTML本身中作为元标记放入了各种无缓存。任何指示都将不胜感激。On和Javascript.ConsoleLog只是一个类,我必须帮助跟踪这个问题,并允许我查看该方法是否被激发。

using System.Web;
namespace accounts.api
{
static public class Javascript
{
static string scriptTag = "<script type="" language="">{0}</script>";
static public void ConsoleLog(string message)
{
string function = "console.log('{0}');";
string log = string.Format(GenerateCodeFromFunction(function), message);
HttpContext.Current.Response.Write(log);
}
static public void Alert(string message)
{
string function = "alert('{0}');";
string log = string.Format(GenerateCodeFromFunction(function), message);
HttpContext.Current.Response.Write(log);
}
static string GenerateCodeFromFunction(string function)
{
return string.Format(scriptTag, function);
}
}
}

GoDaddy问题。。我发现他们使用的是旧版本的Framework,而且在这么长时间后就要消亡了。我让他们把我转移到新的服务器上,我不再有这个问题了。

最新更新