SRSS-无法查看Web服务URL上的报告-无法验证数据

时间:2019-05-19 09:45:52

标签: sql reporting-services

我刚刚将SSRS实例从SQL 2008服务器迁移到了新的2014服务器。除了能够在Report Server Web服务URL中查看报告之外,一切都正常。这是显示在电子邮件底部的链接,允许用户单击并重新运行报告。

我可以访问报表服务器URL并在文件夹中移动,但是一旦尝试呈现报表,它就会失败。我创建了一个没有数据源的空白虚拟报告,并且仍然这样做。如果我通过“报告URL”查看这些报告,则一切正常。我已经设置了HTTPS,但是您仍然可以使用HTTP URL,并且已经对它们进行了测试,结果相同。

library!ReportServer_0-2!f3c!05/19/2019-10:36:56:: e ERROR: Error rending control: System.Web.HttpException: Unable to validate data.
   at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
   at System.Web.UI.Page.EncryptStringWithIV(String s, IVType ivType)
   at System.Web.Handlers.ScriptResourceHandler.RuntimeScriptResourceHandler.GetScriptResourceUrlImpl(List`1 assemblyResourceLists, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.Handlers.ScriptResourceHandler.RuntimeScriptResourceHandler.System.Web.Handlers.IScriptResourceHandler.GetScriptResourceUrl(List`1 assemblyResourceLists, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.Handlers.ScriptResourceHandler.RuntimeScriptResourceHandler.System.Web.Handlers.IScriptResourceHandler.GetScriptResourceUrl(Assembly assembly, String resourceName, CultureInfo culture, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.Handlers.ScriptResourceHandler.GetScriptResourceUrl(Assembly assembly, String resourceName, CultureInfo culture, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.UI.ScriptReference.GetUrlFromName(ScriptManager scriptManager, IControl scriptManagerControl, Boolean zip)
   at System.Web.UI.ScriptManager.RegisterUniqueScripts(List`1 uniqueScripts)
   at System.Web.UI.ScriptManager.RegisterScripts()
   at System.Web.UI.ScriptManager.OnPagePreRenderComplete(Object sender, EventArgs e)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Web.UI.Page.OnPreRenderComplete(EventArgs e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
library!ReportServer_0-2!f3c!05/19/2019-10:36:56:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeException: The request has been aborted., Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeException: An error occurred in the HTTP Runtime object for application domain ReportServer_MSSQLSERVER_0-2-132027317822865767. Most likely, the HTTP request contains an unsupported verb or invalid syntax. ---> System.Web.HttpException: Unable to validate data.
   at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
   at System.Web.UI.Page.EncryptStringWithIV(String s, IVType ivType)
   at System.Web.Handlers.ScriptResourceHandler.RuntimeScriptResourceHandler.GetScriptResourceUrlImpl(List`1 assemblyResourceLists, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.Handlers.ScriptResourceHandler.RuntimeScriptResourceHandler.System.Web.Handlers.IScriptResourceHandler.GetScriptResourceUrl(List`1 assemblyResourceLists, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.Handlers.ScriptResourceHandler.RuntimeScriptResourceHandler.System.Web.Handlers.IScriptResourceHandler.GetScriptResourceUrl(Assembly assembly, String resourceName, CultureInfo culture, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.Handlers.ScriptResourceHandler.GetScriptResourceUrl(Assembly assembly, String resourceName, CultureInfo culture, Boolean zip, Boolean notifyScriptLoaded)
   at System.Web.UI.ScriptReference.GetUrlFromName(ScriptManager scriptManager, IControl scriptManagerControl, Boolean zip)
   at System.Web.UI.ScriptManager.RegisterUniqueScripts(List`1 uniqueScripts)
   at System.Web.UI.ScriptManager.RegisterScripts()
   at System.Web.UI.ScriptManager.OnPagePreRenderComplete(Object sender, EventArgs e)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Web.UI.Page.OnPreRenderComplete(EventArgs e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   --- End of inner exception stack trace ---;

2 个答案:

答案 0 :(得分:0)

1。使用记事本打开报表服务器和报表管理器的web.config文件。在SSRS 2012中,默认位置为:C:\ Program Files \ Microsoft SQL Server \ MSRS11.MSSQLSERVER \ Reporting Services \ ReportServer  (注意:请先备份文件,然后再进行修改。) 2.在该部分中添加以下部分:  

参考:http://support.microsoft.com/kb/911722/en-us

答案 1 :(得分:0)

原因 满足以下条件时会出现此问题: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicy 注册表子项设置为 1。 ASP.NET 2.0 使用 AES 算法的 RijndaelManaged 实现 进程查看状态数据。 ReindaelManaged 实施尚未 美国国家标准与技术研究院 (NIST) 认证为 符合联邦信息处理标准 (FIPS)。因此,该 AES 算法不是 Windows 平台 FIPS 验证的加密的一部分 算法。

解决方法 重要这些步骤可能会增加您的安全风险。这些步骤也可能使 计算机或网络更容易受到恶意用户的攻击或 病毒等恶意软件。我们推荐这篇文章的过程 描述使程序能够按照其设计或实现的方式运行 特定的程序功能。在您进行这些更改之前,我们建议您 您评估与在您的企业中实施此过程相关的风险 特定环境。如果您决定实施此流程,请采取任何 适当的附加步骤来帮助保护系统。我们建议您使用 仅当您确实需要此过程时才进行此过程。

To work around this problem, change the configuration in the application-level 
Web.config file. Specify that ASP.NET use the Triple Data Encryption Standard 
(3DES) algorithm to process view state data. 
To do this, follow these steps: 
In a text editor such as Notepad, open the application-level Web.config file.
In the Web.config file, locate the <system.web> section.
Add the following <machineKey> section to in the <system.web> section:
<machineKey validationKey="AutoGenerate,IsolateApps" 
decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
Save the Web.config file.
Restart the Microsoft Internet Information Services (IIS) service. To do this, run 

在命令提示符下执行以下命令: 重置 重要 理论上,3DES 算法不如 AES (Rijndael) 安全 算法。我们建议您尽可能使用 AES 算法来帮助 保护您的系统。