3

我有一个在 IIS6.0 上运行的 ASP.NET 存储库站点,我遇到了一个无法重现的问题,但是其中三个用户每次都遇到这个问题(大约 20 个其他用户运行得很好)。我很确定这与 IIS 身份验证设置有关,但我当然没有排除编码错误。

用户告诉我,这 3 个出现错误的共同因素是他们已将 60 多个文档上传到网站上。所有用户都在不同的省份,所以我只有他们拍摄的屏幕截图和服务器事件日志可供调试。

当试图转到 ViewPage.aspx 页面(但不是站点上的任何其他页面)时,系统会提示他们输入用户凭据。当他们尝试登录时,他们会再次收到登录提示。在他们尝试登录 3 次后,他们收到以下错误消息:

HTTP 错误 401.1 - 未经授权:由于凭据无效,访问被拒绝。

系统事件查看器有以下警告(其中任一警告超过 10 个):

EventID:1011
来源:W3SVC
描述:
为应用程序池“SDAAppPool”提供服务的进程与万维网发布服务发生了致命的通信错误。进程 ID 为“3264”。数据字段包含错误号。

EventID:1009
来源:W3SVC
描述:
服务应用程序池“SDAAppPool”的进程意外终止。进程 ID 为“2088”。进程退出代码为“0x800703e9”。

安全事件查看器具有以下几个失败审计:

EventID:560
来源:安全
类别:对象访问
描述:
对象打开:
对象服务器:SC 管理器
对象类型:SERVICE OBJECT
对象名称:WinHttpAutoProxySvc
句柄 ID:-
操作 ID:{0,557880730}
进程 ID:444
图像文件名:C :\WINDOWS\system32\services.exe
主用户名:EBTOPVNET01$
主域:EBSS
主登录 ID:(0x0,0x3E7)
客户端用户名:NETWORK SERVICE
客户端域:NT AUTHORITY
客户端登录 ID:(0x0,0x3E4)
访问:查询服务状态
启动服务

从服务特权 查询信息:-
Restricted Sid Count:0
访问掩码:0x94

应用程序事件查看器有以下错误:

EventID:5000
来源:.NET Runtime 2.0 错误
用户:N/A
描述:
EventType clr20r3、P1 w3wp.exe、P2 6.0.3790.3959、P3 45d691cc、P4 system.data、P5 2.0.0.0、P6 4889ece0、P7 1849、P8 0,P9 system.stackoverflowexception,P10 NIL。

我的 web.config 具有以下身份验证/授权代码:

<authentication mode="Windows"/>
<authorization>
    <deny users="?"/>
</authorization>

我在 ViewPage.aspx 页面上使用以下用户检查:

UsersService us = new UsersService();
TList<Users> currUser = us.Find("Ntid = '" + User.Identity.Name + "'");
int userID = 0;
if (currUser.Count != 0 )
{
    userID = currUser[0];
}

并使用该用户 ID 检查访问等。如果 userID == 0 他们只获得读取访问权限(如果 User.Identity.Name 返回空,我认为这会给用户读取访问权限而不是 401 错误)。我在另一个页面上进行相同的用户检查,用户访问它没有问题。

根据我在谷歌上搜索各种子问题的几天,我不确定所有这些事实是否相关,但我已经包含了我能想到的所有内容。如果我错过了任何相关的内容,请告诉我。任何关于从哪里开始调查或能够在我的本地主机上重现它以便我可以调试的方法的想法将不胜感激。谢谢。

4

1 回答 1

1

从进程退出代码看来,某种递归正在发生并且永远不会展开。令人惊叹的Tess Ferrandez 写了一篇很棒的文章,解释了如何调试这样的问题:

.NET 崩溃:如何不编写全局异常处理程序

于 2010-10-14T23:09:45.167 回答