我有两台服务器。都运行IIS7.5。
它们都运行相同版本的基于web的应用程序,它占用多个应用程序池(它作为大量的小服务运行,等等)。
我有一个excel插件,它连接到那个应用程序,可以提取数据。
我所知道的这两台机器之间唯一的不同之处在于,运行中的机器使用标准帐户、本地系统、应用程序标识等运行其所有应用程序池。
失败的应用程序池大部分使用特定的服务帐户(主要是web应用程序使用的应用程序池)。
问题的症结似乎在于,在工作机器上,交换如下:
POST /Service/Hierarchy.svc - 80 - 10.100.69.49 - 200 0 0 0
GET /Application/login/login.dll - 80 DOM\Account 10.100.69.49 - 200 0 0 140在故障服务器上-
POST /Service/Hierarchy.svc - 80 - 10.100.69.49 - 200 0 0 0
GET /Application/login/login.dll - 80 - 10.100.69.49 - 401 2 5 358请注意,帐户没有被传递。
我看到的所有其他设置都是一样的,除了.在该应用程序/login/login.dll身份验证设置上,在工作服务器上协商然后是NTLM,在失败的服务器上--如果我这样说--那么应用程序的其他部分就会停止处理401项要求凭据的挑战。
有人能就如何调试这个问题提供任何建议吗?
谢谢
编辑:这里有一个修剪过的wireshark捕获失败的尝试。
GET /Application/login/login.dll HTTP/1.1
Authorization: Negotiate YIILwgYGKwYBBQUCoIILtjCCC7KgM...etc
Host: MachineName
HTTP/1.1 401 Unauthorized
Content-Type: text/html
Server: Microsoft-IIS/7.5
WWW-Authenticate: Negotiate oYGNMIGKoAMKAQGhC...etc
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Wed, 20 Apr 2016 05:42:58 GMT
Content-Length: 1293
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
...html
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
...html
<div id="header"><h1>Server Error</h1></div>
<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
...html
GET /Application/login/login.dll HTTP/1.1
Authorization: Negotiate oYILiTCCC4WgAwoBAa...etc
Host: MachineName
HTTP/1.1 401 Unauthorized
Content-Type: text/html
Server: Microsoft-IIS/7.5
WWW-Authenticate: Negotiate oX8wfaADCgEBonYEdGByBgk...etc
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Wed, 20 Apr 2016 05:42:58 GMT
Content-Length: 1293
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
...html
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
...html
<div id="header"><h1>Server Error</h1></div>
...html
<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
...html我知道这个用户可以访问请求中的urls,所以我可以手动调用/Application/login/login.dll。
是
GET /Application/login/login.dll HTTP/1.1
Authorization: Negotiate YIILwgYGKwYBBQUCoIILtjCCC7KgM...etc
Host: MachineName 它试图传递用户名的地方?这可能是失败的,这就是为什么我没有看到用户被传递?
再次感谢
编辑:
我在Wireshark上看到了以前没有的KRB5KRB_AP_ERR_MODIFIED,以及它列出运行AppPool的ServiceAccount的细节。
所以我想这可能和- Windows身份验证KRB5KRB_接入点_错误_改性有关
发布于 2016-04-20 06:20:34
是的,修正了:)
只需在应用程序/登录/站点中的“Windows身份验证”设置中检查“启用内核模式”身份验证。
我注意到它说,如果在应用程序池中使用自定义标识,它将保持启用状态。
https://serverfault.com/questions/771419
复制相似问题