已发布的网站w / Crystal Reports未在服务器IIS 7.5上运行

时间:2013-09-05 22:05:07

标签: c# asp.net vb.net iis crystal-reports

我有两个使用Crystal报告版本13.02的visual studio 2010项目。

1有效,另一个出现object reference not set to an instance of an object错误。

第一个应用程序,我从头开始作为Web应用程序开发,它使用了几个现有的水晶报告,并正在使用水晶报告查看器。它是asp.net 4.0 framework中使用c#的Web应用程序项目。

另一个项目是一个较旧的VB网站项目,我从.net 2.0升级到4.0并且工作正常,直到我不得不将其升级到13.02。此项目不使用查看器,但仅将数据打印到报表。在我的视觉工作室下的开发笔记本电脑上,它运行并打印正常,但在发布到我的笔记本电脑的IIS 7.5和服务器的IIS 7.5时却没有。

我收到此错误并已用尽所有可能的选项。它不能是驱动程序,因为Web应用程序项目在我的机器和服务器上都能正常工作。我怀疑在找到答案之前我将被迫将项目转换为Web应用程序项目......但是我更愿意找到解决方案来解决问题。

更新 经过进一步的调试后,我发现问题是PrintToPrinter方法,它在开发模式下再次正常工作,但在发布时却没有。

3 个答案:

答案 0 :(得分:1)

VB应用程序的web.config文件是否具有所有必需的Crystal引用?过去几天我一直在学习它很古怪。

答案 1 :(得分:1)

已解决的问题 尽管在那里,打印机确实没有找到。这是因为IIS没有与用户相同的资源访问权限,理所当然,并且需要通过默认用户密钥下的注册表项或者打印机的安全选项授予访问权限,以便将IIS设置为IIS帐户在IIS下的“身份”选项下,在Web应用程序正在使用的应用程序池中设置。

完整的流程也在此链接SAP site中详细说明,结果是两次。

  1. 我使用此代码段循环浏览所有可用的打印机(我从SAP复制并粘贴了这个,我使用C#作为我的应用程序并创建了一个要添加的列表框)并在打印过程中在网页上显示它们过程:

    Dim myPrinter As String 
    For Each myPrinter In System.Drawing.Printing.PrinterSettings.InstalledPrinters
    
             add  to list
    Next
    
  2. 在网络服务器下,通过计算机管理,我将本地服务IIS ID添加到 打印操作员 组。

  3. 在IIS下,使用网站正在使用的应用程序池的“ 高级设置 ”,我将身份字段更改为 本地服务

  4. 我通过再次运行代码片段验证了打印机现已可用,然后打印报告并运行并打印正常。

  5. 找到这个答案需要一段时间,如果没有提供的帮助,我就无法到达那里,这导致我得到答案。我希望这可以帮助别人。

答案 2 :(得分:0)

您需要在生产服务器上下载并安装CR。 *.msi

例如:CRRuntime_64bit_13_0.msi