我的状态很奇怪,希望有人能帮助我理解。在我的本地计算机上,这似乎不是问题。我根本无法复制它。一旦将其发布到GoDaddy,它可以正常运行约10次左右,然后在搜索结果中退出发布。我进入开发工具,这就是我在工作时看到的内容。

成功请求 header

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

失败的请求 header
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,并且在不久之后就死了。我让他们将我转移到新服务器上,而我不再遇到问题。

10-01 20:18
查看更多