我有一个在IIS6.0上运行的ASP.NET存储库网站,我有一种无法重现的问题,但每次都有三个用户有这个问题(大约20个其他用户运行得很好)。我很确定这与IIS身份验证设置有关,但我肯定没有排除编码错误的可能性。
用户告诉我,三个出现错误的人的共同因素是他们已经将60多个文档上传到了网站上。所有的用户都在不同的省份,所以我只有他们拍摄的屏幕截图和服务器事件日志来调试。
当试图转到ViewPage.aspx页面(但不是网站上的任何其他页面)时,系统会提示他们输入用户凭据。当他们尝试登录时,会再次收到登录提示。他们尝试登录三次后,会收到以下错误消息:
HTTP错误401.1-未经授权:由于凭据无效,访问被拒绝。
系统事件查看器具有以下警告(其中任意一个警告超过10个):
EventID:1011
Source: W3SVC
Description:
A process serving application pool SDAAppPool suffered a fatal communication error with the World Wide Web Publishing Service. The process id was 3264 . The data field contains the error number.
和
EventID:1009
Source: W3SVC
Description:
A process serving application pool SDAAppPool terminated unexpectedly. The process id was 2088 . The process exit code was 0x800703e9 .
安全事件查看器具有以下几种故障审核:
EventID: 560
Source: Security
Category: Object Access
Description:
Object Open:
Object Server: SC Manager
Object Type: SERVICE OBJECT
Object Name: WinHttpAutoProxySvc
H和le ID: -
Operation ID: {0,557880730}
Process ID: 444
Image File Name: C:WINDOWSsystem32services.exe
Primary User Name: EBTOPVNET01$
Primary Domain: EBSS
Primary Logon ID: (0x0,0x3E7)
Client User Name: NETWORK SERVICE
Client Domain: NT AUTHORITY
Client Logon ID: (0x0,0x3E4)
Accesses: Query status of service
Start the service
Query information from service
Privileges: -
Restricted Sid Count: 0
Access Mask: 0x94
应用程序事件查看器存在以下错误:
EventID: 5000
Source: .NET Runtime 2.0 Error
User: N/A
Description:
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>
和 I use the following user check on the ViewPage.aspx page:
UsersService us = new UsersService();
TList<Users> currUser = us.Find("Ntid = " + User.Identity.Name + " ");
int userID = 0;
if (currUser.Count != 0 )
{
userID = currUser[0];
}
和 use that userID for checking access 和 such. If the userID == 0 they get read access only (which I would think would give the users read access instead of 401 errors if User.Identity.Name returned empty). I do the same user check on another page 和 the users have no problems accessing it.
根据我几天在谷歌上搜索的各种子问题,我不确定所有这些事实是否都相关,但我已经包括了我能想到的一切。如果我错过了任何相关的事情,请告诉我。如果有任何关于从哪里开始调查的想法,或者能够在我的本地主机上复制这些想法以便进行调试的方法,我们将不胜感激。谢谢