谁能给我一些关于这方面的背景信息,这让我很头疼。开发时不会在 localhost (Windows 7) 上发生这种情况,而是在 Windows 2003 IIS 6 上发生。
我在这个特定页面上有很多控件(下拉列表/文本框)和一个网格视图。
导致相同问题的两种情况:
1)gridview 的 HTML 靠近顶部,并且(因此)首先呈现给客户端。当显示网格视图时 - 碰巧其他一些下拉列表尚未呈现 - 但有些是。当我在呈现所有下拉列表之前对 gridview 进行分页时,出现 404 错误 - 页面名称为“未知” - 我也(我无法解释原因,但 eventviewer 有时只会触发它 - 不是每次都触发它)在事件查看器中得到以下信息:
Event code: 4009
Event message: Viewstate verification failed. Reason: Viewstate was invalid.
2)当前几个下拉列表已呈现(此时其他下拉列表尚未呈现到屏幕上) - 我选择了不同的 gridview 项目并提交 - 然后我也得到 404 错误。 http://mysite.com/undefined
这只发生在一个特定的内容页面上 - 即使在其他页面上使用完全相同的控件。在其他页面上,我可以在控件全部呈现之前更改页面 - 没有错误。
当我将 gridview 的 HTML 放在页面底部时,它最后呈现。因此,在其他控件的渲染完成之前,我无法分页,这种解决方法可以节省一天的时间 - 但仅适用于 gridview。场景二还是很有可能的。
问题:我在哪里可以发现这个错误?请问在什么情况下?
这是预期的行为吗?我可以理解可能会发生 Viewstate 错误 - 但为什么有时只会将 viewstate 写入事件查看器?
这对其他开发人员来说也是一个问题吗?您是否采取了诸如按特定顺序呈现控件之类的步骤以防止出现此类错误?