2

在生产中有一个奇怪的错误,只是想知道服务器是否可以处理一半提交的网页?

该页面没有视图状态,仅使用普通的旧 html 控件并通过 Request.Form[name] 等访问后端转发器中显示的数据。

是否有可能由于 Internet 连接丢失和服务器仍在处理页面而导致请求被截断。因此,如果字段不是请求的一部分 Request.Form[name] 可能会导致 null?

我知道可以使用 fiddler 来修改请求,但不幸的是我们不允许更改组策略和更改代理!

非常感谢

4

2 回答 2

1

是否有可能由于 Internet 连接丢失和服务器仍在处理页面而导致请求被截断?

是的,这是可能的,如果有人按下提交按钮,即使页面没有完全加载,浏览器也会关闭表单并提交直到那一刻为止的所有内容。!

要检查页面是否已满发送,请留下EnableEventValidation=true 如果页面未完全发送,则会出现抛出错误。

我认为Page.IsValid函数也做类似的工作。如果页面是有效的,那么您将获得所有数据。

因此,如果您在页面的一部分上有延迟,那么您将获得在那之前的数据浏览器。

要测试我所说的内容,请在您的页面中使用此代码,当您的页面达到此延迟时,单击一个按钮,您只会获得到目前为止的数据。

<%
Response.Flush();
System.Threading.Thread.Sleep(10000);
%>

任何页面都可以提交损坏的数据,发生多次,

这就是为什么 ms 在每个页面中都包含__EVENTVALIDATION隐藏控件(除非您禁用它),以检查页面是否已更正并将其发回。

于 2010-04-21T12:07:54.237 回答
0

这是不可能的。页面是否提交。

要调试问题,请记录所有表单字段(名称和值)并在那里查找错误。很有可能您使用的是相同的ID,或者Name这就是您丢失字段的原因。

于 2010-04-21T10:04:17.630 回答