在回发时请求AD凭据/“连接中断”

时间:2009-08-03 23:02:13

标签: c# asp.net

很多领导:

我有一个简单的ASP .NET 3.5数据输入webform,其中包含一系列下拉列表,文本框和文本区域,Active Directory正在处理用户身份验证。

用户输入字母数字ID,然后单击按钮。 aspx.cs中的按钮onclick():
 1.调用存储过程以确定它是新记录,还是现有数据(如果已存在)  2.如果记录存在,则使用现有值预填充表单。

有三个文本框已经扩展为使用ASP .NET AJAX AutoComplete(每个都包含在自己的asp:UpdatePanel中),它们也成功回发。

当用户输入数据时,只有一个按钮来保存记录,其中:
 1.调用存储过程,相应地插入或更新
 2.清除网状物  3.显示快速成功的消息。

自推出以来,已通过此表单插入和更新了4000多条记录。我现在遇到一个问题,即 ONE 记录无法更新,它是在一个月前插入的,通过相同的表单插入,没有问题。

在Internet Explorer(6,7和8)中:单击“保存”按钮时,它会要求您提供域用户名和密码。输入有效的用户名和密码将显示“Internet Explorer无法显示网页”屏幕。

在Firefox 3中:单击“保存”按钮时,将显示“连接已中断”屏幕。单击“再试一次”按钮不会更改结果。

应用程序使用的日志记录中没有条目,服务器的事件日志,也没有SQL Server 2005。

我试过了:
- 在不同的计算机上,它失败了 - 与不同的用户,它失败了。
- 与许多其他记录,他们完美更新。

我已经以两种不同的方式将记录加载到测试环境中:
 1.直接从生产数据库复制并粘贴到测试数据库
 2.直接从生产webform复制并粘贴到测试webform 问题不会发生在测试或我的本地开发系统中。生产和测试都运行ASP .NET 3.5 SP1。

我甚至保存了失败的生产页面的副本和作为HTML工作的测试页面并通过Total Commander的“按内容比较文件”功能运行它们,希望差异将以红色突出显示为很好,很明显。唯一的区别在于.NET在运行时自动生成的区域,以及下拉列表的项目列表在生产中有更多条目然后在测试中的偶然位置。

我意识到导致最终回发失败的数据可能有问题,但在回发甚至启动之前似乎失败了。我通过查看加载的aspx页面的来源和数据库中查看记录的数据,希望找到一个流浪的隐形字符或一个字符太多的字符,这可能会导致它窒息,但没有运气。< / p>

同事建议在web.config中设置viewStateEncryptionMode="never",这已经“修复”了问题,现在可以无错误地更新记录。

不幸的是,我无法提供导致表单失败的数据。

我的问题: 有没有人知道为什么会发生这种情况或为什么设置viewStateEncryptionMode="never"修复它?

是一个比设置ViewStateEncryptMode更好的解决方案

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,也是最重要的 - 除了.Net 3.5 SP1 - 确保您在服务器上安装了最新的补丁(这应该始终是第一步)。

假设服务器是最新的,我首先检查服务器上的防火墙和防病毒软件(它们应该有日志)。反病毒可以阻止使用可疑代码的网站 - 就像一个已知的JavaScript漏洞利用(我承认我尝试过这个漏洞。对于科学而言)。视图状态上的特定组合可能看起来像可疑代码或文件(看起来很奇怪,但可能) 接下来,您可以检查IIS。启用日志记录并查看是否出现任何错误。检查您是否安装了任何isapi过滤器(这些过滤器可能位于多个位置 - “Web服务扩展”文件夹,或网站Properties上的选项卡,或其父项属性之一)

相关问题