在 Visual Studio .NET 2003 以及 Crystal Report 9 和更高版本中配置服务器文件

服务器文件指从 IIS 中的查看器虚拟目录中提供的报表 Web 服务的集合服务器文件最早在 Visual Studio .NET 2002 中作为 Crystal Reports 中的一个 Crystal 服务节点提供,但之后被删除。其后的每个 Crystal Reports 版本都在 SDK 中继续支持服务器文件;但在每个版本中都需要进行一些配置。

Note注意

有关该目录的更多信息,请参见“查看器虚拟目录”

服务器文件由基础报表文件生成,这些基础报表文件存储在 Web 服务器文件目录路径下的样例报表文件夹中(或任何其他指定的文件夹中)。

可采用以下两种方式访问服务器文件:

-

作为 Crystal 服务下的可见节点。

这种访问方式仅在 Crystal Reports for Visual Studio .NET 2002 或 2003 中可用。
  • 通过 SDK 中的 ServerFileReport 类的编程配置。

    通过 SDK 访问服务器文件的方式在 Crystal Reports .NET 的所有版本中均可用。

服务器文件通过 IIS 中的虚拟目录提供。连接到基础报表文件需要配置文件夹访问权限。

Crystal Reports for Visual Studio .NET 2002 与以后版本的访问权限处理方法有所不同:

  • Crystal Reports for Visual Studio .NET 2002 要求 ASPNET 客户端被授予对文件目录中的报表文件夹的访问权限。
    Note注意

    已不再使用此权限处理方法。

  • 在 Crystal Reports 的所有后续版本中,访问权限是通过一个 web.config 配置项进行配置的。

在 Visual Studio .NET 2003、Crystal Reports 9 或 Crystal Reports 10 中,服务器文件是如何配置的

在 Visual Studio .NET 2003、Crystal Reports 9 和 Crystal Reports 10 中,已不再对服务器文件使用配置文件夹,而是在 web.config 文件中添加一个配置项。

可将该配置项分别添加到各个项目的 web.config 文件中,每次可添加一个。但是,建议您将该配置项添加到位于 Crystal Reports 的查看器虚拟目录下的 web.config 文件中,以使该信息可供所有 Visual Studio .NET 项目使用。执行此操作前,请参见下一节以了解更多有关“查看器虚拟目录”的信息。

服务器文件和查看器虚拟目录

服务器文件是 Internet 信息服务 (IIS) 通过一个集中 Web 服务提供的,该 Web 服务位于一个特殊的查看器虚拟目录中。随后的每个 Crystal Reports 版本都在 IIS 中创建一个附加的查看器虚拟目录,使多个版本的 Crystal Reports 可在系统上共存。

如果使用较早版本的 Crystal Reports 在项目中编写了服务器文件代码,那么在升级到更高的版本时,需要维护附加的“查看器虚拟目录”。在代码中,必须将每个 ServerFileReport 实例的 WebServiceURL 属性中的“查看器虚拟目录”名称更改为当前的“查看器虚拟目录”名称,这样 ServerFileReport 实例才能正常工作。

更改 ServerFileReport 实例的 WebServiceURL 属性中的“查看器虚拟目录”

  1. 找到项目中每次为 ServerFilesReport 实例的 WebServiceURL 属性赋值的位置。
  2. 比较代码中当前指定的查看器虚拟目录名称和之前版本中所用的查看器虚拟目录的名称。请参见“查看器虚拟目录”
  3. 更改 Crystal Reports 最高安装版本中使用的查看器虚拟目录。
  4. 重新进行编译,并验证报表是否能正确加载。

修改查看器虚拟目录中的 web.config 文件,以在 Visual Studio .NET 2002 之后的所有版本中正确配置服务器文件。

将服务器文件配置项添加到查看器虚拟目录下的 web.config 文件中(Visual Studio .NET 2002 之后的所有版本)

  1. 找到 Crystal Reports 最高安装版本的查看器虚拟目录(请参见“查看器虚拟目录”)。

  2. 要确定查看器的虚拟目录能否正常工作,请打开浏览器并输入查看器虚拟目录中已发布的报表 Web 服务的 URL。

    Visual Studio .NET 2003:

    https://localhost/CrystalReportWebFormViewer2/ServerFileReportService.asmx?wsdl
    

    Crystal Reports 9:

    https://localhost/crystalreportviewers/ServerFileReportService.asmx?wsdl
    

    Crystal Reports 10:

    https://localhost/crystalreportviewers10/ServerFileReportService.asmx?wsdl
    

    Crystal Reports XI:

    https://localhost/crystalreportviewers11/ServerFileReportService.asmx?wsdl
    
  3. 在文本编辑器中,打开位于查看器虚拟目录中的 web.config 文件。

    Note注意

    或者,您也可以选择只为将访问这些服务器文件报表的客户端 Web 应用程序更改 web.config 文件。

  4. 在 web.config 文件顶部的配置标签内,添加一个 configSections 项,其中声明一个新的 sectionGroup 类型 (crystalDecisions) 及其 section (serverFileReportManager)。

    <configSections>
    <sectionGroup name="crystalDecisions">
    <section name="serverFileReportManager"
    type="System.Configuration.NameValueSectionHandler, System,
    Version=1.0.3300.0, Culture=neutral,
    PublicKeyToken=b77a5c561934e089, Custom=null" />
    </sectionGroup>
    </configSections>
    
  5. 在 configSections 的结束标签后,添加在上一步中声明的新 sectionGroup 和 section。

    在下面的示例中,将根目录的值更改为已在其中存储了报表的目录。出于本示例说明的目的,文件路径设置为 C:\program files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Reports\Feature Examples。

    <crystalDecisions>
    <serverFileReportManager>
    <add key="rootDirectory"
    value="C:\program files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\En\Reports\Feature Examples" />
    </serverFileReportManager>
    </crystalDecisions>
    
    Note注意

    必须在值字段中输入报表文件夹的文件目录路径。

  6. 保存对 web.config 所做的更改。

请参见