我们目前有两台Web服务器(Windows Server 2008 Standard,IIS7)设置为托管ASP.Net网站,并使用我们的硬件防火墙的基本功能在两台服务器之间提供网络负载平衡(NLB)。这意味着我们必须将ASP.Net会话状态模式更改为SQL Server,以便无论哪个服务器响应请求,都可以访问存储在会话中的数据。现在的主要问题是水晶报告(与VS2008一起打包的基本版本)似乎不支持序列化,这是为了将报告存储/传输到SQL Server上的会话状态所需的。
从我到目前为止所读到的内容来看,在Web场环境中运行水晶报表似乎唯一的选择是升级到Crystal Reports Server并从第三台服务器加载报表。
另一种选择可能是使用SQL Server Reporting Services(SSRS),因为我们已经有了这个,所以不需要额外的费用,但是我不确定SSRS是否可以解决在会话中存储报告的问题?
有没有人有任何在网络农场环境中设置水晶报告或SSRS的经验/建议?
答案 0 :(得分:0)
您是否考虑过使用IIS而不是NLB的ARR和URL重写模块?不确定这是否能解决问题,但需要考虑的事情。我现在已经在客户的SSRS设置面前获得ARR,没有报告任何困难,它是100%的现代IIS,而不是传统的NLB,在涉及以网络为中心的活动时灵活性较低。
Crystal Reports本身是否依赖于会话状态,还是应用程序中的设计选择?
ASP.NET State Service是否提供比SQL Server会话状态DB更好的选项?
你是什么意思CR并不“似乎”支持序列化? IIS计算机上的machineKey值是否匹配?如果密钥不匹配,则在服务器场中无法跨机器进行OOTB序列化。