1

我正在尝试解决报告查看器控件显示消息的问题:

请求失败,HTTP 状态为 401:未授权。

而不是报告。此消息显示在将显示报告的位置。页面的 Share Point 部分正常显示。

这发生在 SharePoint 2013 页面上的报表查看器控件中。

其他页面上的其他一些报告显示得很好。在报表服务器中,这些报表的浏览权限是相同的。

具有相同配置的测试环境工作正常。我在 Web 服务器上的 web.config 和报表服务器上的 RSReportServer.config 文件中找不到任何差异。

我使用浏览器中的 http 流量,使用 IE 开发人员工具中的“网络”选项卡,看到了一些了不起的东西。从 javascript 到报表服务器控件的 POST 请求如下:

/Reserved.ReportViewerWebControl.axd?OpType=SessionKeepAlive&ControlID=597f9e1be96e4291b847ce06da66940d 

并接收 HTTP 500 状态,而响应正文只有两个字节:

好的

正常工作的报告发出类似的请求,但只接收 HTTP 200 状态,也以 OK 作为响应正文。

在我的测试环境中,情况又有所不同。该报告向 ReportViewerWebControl.axd 发出三个请求。第一个获得 HTTP 401 状态。下一个请求添加带有 NTLM 令牌的身份验证标头。这也会获得 401 状态。第三个添加另一个 NTLM 值并获得 200 状态。

这看起来像是一些挑战机制,我发现了一篇 MSDN 文章错误:请求失败,HTTP 状态 401:当您在 Microsoft Dynamics CRM 4.0 中打开报告并通过添加到我的 RSReportServer.config 文件进行测试时未授权。这没有帮助,我的测试环境中也没有这个键。

我还启用了 FailedRequest 日志记录,以更深入地了解内部服务器错误,由对 ReportViewerWebControl.axd 的请求返回。此日志记录非常详尽,但我找不到任何指向此错误原因的内容。

在请求摘要下,它显示

188. view trace 
Warning         -MODULE_SET_RESPONSE_ERROR_STATUS 
ModuleName      ManagedPipelineHandler 
Notification    EXECUTE_REQUEST_HANDLER 
HttpStatus      500 
HttpReason      Internal Server Error 
HttpSubStatus   0 
ErrorCode       The operation completed successfully. (0x0) 
ConfigExceptionInfo 

并在身份验证和授权下

No. Event  
60. view trace  -AUTH_START AuthTypeSupported   MapCliCert 
61. view trace  -AUTH_END   
64. view trace  -AUTH_START AuthTypeSupported   Basic 
65. view trace  -AUTH_END 
68. view trace  -AUTH_START AuthTypeSupported   NT 
70. view trace  -AUTH_END 
91. view trace  -FILTER_AUTH_COMPLETE_START 
92. view trace  -FILTER_AUTH_COMPLETE_END  

我不明白所有这些意味着什么,但它是

ErrorCode 操作成功完成。

看起来很矛盾。

有人对解决此问题的后续步骤有建议吗?

4

0 回答 0