Создание веб-сервиса на основе FastReport.Service.dll

Можно очень просто реализовать веб-сервис, используя библиотеку  FastReport.Service.dll  (WCF Service Library), которая поставляется совместно с FastReport.

Наш пример будет основан на создании простейшего веб-приложения с функциями веб-сервиса с нуля, но так же можно доработать уже существующий ваш проект – главное, чтобы он работал под управлением .NET Framework 4.0 или более новым.

Запускаем Visual Studio и создаем новый проект ASP.NET Web Application под .NET Framework 4.0.

New Web Application

Добавляем reference на библиотеки FastReport.dll, FastReport.Bars.dll, FastReport.Service.dll

Создаем текстовый файл с именем ReportService.svc в корне сайта.

New Text File

Добавляем следующие строки в созданный файл:

<%@ ServiceHost Service="FastReport.Service.ReportService" %>
 
<%@ Assembly Name="FastReport.Service" %>
 

 

Открываем файл web.config и добавляем следующие секции в секцию <configuration>:

<appSettings>
 <!-- path to folder with reports -->
 <add key="FastReport.ReportsPath" value="C:\Program files\FastReports\FastReport.Net\Demos\WCF" />
 <!-- name of connection string for reports -->
 <add key="FastReport.ConnectionStringName" value="FastReportDemo" />
 <!-- Comma-separated list of available formats PDF,DOCX,XLSX,PPTX,RTF,ODS,ODT,MHT,CSV,DBF,XML,TXT,FPX. 
 You can delete any or change order in this list. -->
 <add key="FastReport.Gear" value="PDF,DOCX,XLSX,PPTX,RTF,ODS,ODT,MHT,CSV,DBF,XML,TXT,FPX" />
 </appSettings>
 <connectionStrings>
 <add name="FastReportDemo" connectionString="XsdFile=;XmlFile=C:\Program Files\FastReports\FastReport.Net\Demos\Reports\nwind.xml"/>
 </connectionStrings>
 <system.serviceModel>
 <services>
 <service behaviorConfiguration="FastReportServiceBehavior" name="FastReport.Service.ReportService">
 <endpoint address="" binding="wsHttpBinding" contract="FastReport.Service.IFastReportService">
 <identity>
 <dns value="localhost" />
 </identity>
 </endpoint>
 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
 </service>
 </services>
 <behaviors>
 <serviceBehaviors>
 <behavior name="FastReportServiceBehavior">
 <serviceMetadata httpGetEnabled="True" />
 <serviceDebug includeExceptionDetailInFaults="True" />
 </behavior>
 </serviceBehaviors>
 </behaviors>
 <bindings>
 <basicHttpBinding>
 <binding messageEncoding="Mtom"
 closeTimeout="00:02:00" openTimeout="00:02:00"
 receiveTimeout="00:10:00" sendTimeout="00:02:00"
 maxReceivedMessageSize="67108864" maxBufferSize="65536"
 transferMode="Streamed">
 <security mode="None">
 <transport clientCredentialType="None" />
 </security>
 </binding>
 </basicHttpBinding>
 </bindings>
 </system.serviceModel>
 

 

Параметр "FastReport.ReportsPath" должен указывать на папку с отчетами – для примера можно указать папку с примерами отчетов «\FastReport.Net\Demos\WCF».

Параметр "FastReport.ConnectionStringName" содержит название строки подключения к базе данных. Эта строка должна быть прописана в секции  <connectionStrings>.

Запускаем сайт на исполнение и проверяем доступность веб-сервиса обратившись к файлу ReportService.svc, который размещен на сайте.

ReportService

При размещении проекта на сервере не забудьте проверить наличие файлов  FastReport.dll, FastReport.Bars.dll, FastReport.Service.dll в папке /bin.

Примеры клиентских программ можно посмотреть в папках \FastReport.Net\Demos\C#\WCFClient и \FastReport.Net\Demos\C#\WCFWebClient. В каждом из примеров нужно сделать настройку Service References. Откройте проект в Visual Studio и по клику правой кнопкой мыши на ReportService выберете пункт меню Configure Service Reference.

Configure Service Reference

 

В открывшемся окне укажите адрес работающего веб-сервиса.

Продолжение следует.