![使用 IIS 基本身份验证时性能缓慢](https://linux22.com/image/598109/%E4%BD%BF%E7%94%A8%20IIS%20%E5%9F%BA%E6%9C%AC%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E6%97%B6%E6%80%A7%E8%83%BD%E7%BC%93%E6%85%A2.png)
我正在通过 HTTP 使用 MSMDPUMP.dll 的 SSAS。我已将 MSMDPUMP.dll Web 设置为仅使用基本身份验证,然后在 ConnectionString 中提供用户 ID 和密码。一切正常,但速度太慢,无法使用。我在 IIS 中启用了失败请求跟踪,我注意到我收到数千个 401.2 错误,其中包含以下信息:
ModuleName IIS Web Core
通知 2
HttpStatus 401
HttpReason 未授权
HttpSubStatus 2
ErrorCode 2147942405
ConfigExceptionInfo
通知 AUTHENTICATE_REQUEST
ErrorCode 访问被拒绝。(0x80070005)
我认为这是开销,也是它运行缓慢的原因?如果我将身份验证更改为匿名,一切都会运行得很快。不幸的是,这不是一个选项,所以我需要通过基本身份验证性能来解决这个问题。有什么想法吗?
编辑 似乎它首先尝试匿名身份验证,只有在失败后才使用基本身份验证。我甚至没有启用匿名身份验证,所以我不知道为什么会发生这种情况。
答案1
如果服务访问执行许多请求,并且每个请求都必须进行身份验证,那么如果没有设置身份验证 cookie,这将是预期的行为。如果每个请求都必须执行完整的身份验证,性能将明显下降。
如果您无法设置身份验证 cookie,并且可以使用 Windows 身份验证,则 IIS 会有一个设置仅对第一个请求进行身份验证。
在 IIS 7.0 中将集成 Windows 身份验证与 Kerberos 身份验证协议结合使用时,可能会遇到性能下降的问题
http://support.microsoft.com/kb/954873