Создание веб-сервиса на основе FastReport.Service.dll
Можно очень просто реализовать веб-сервис, используя библиотеку FastReport.Service.dll
(WCF Service Library), которая поставляется совместно с FastReport.
Пример основан на создании простейшего веб-приложения с функциями веб-сервиса с нуля, но так же можно доработать уже существующий ваш проект – главное, чтобы он работал под управлением .NET Framework 4.6.2 или более новым.
Запускаем Visual Studio и создаем новый проект ASP.NET Web Application под .NET Framework 4.6.2 или выше.
Добавляем ссылки на библиотеки FastReport.dll
, FastReport.Bars.dll
, FastReport.Service.dll
.
Создаем текстовый файл с именем ReportService.svc в корне сайта.
Добавляем следующие строки в созданный файл:
<%@ 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 Professional\Demos\Reports" />
<!-- 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 Professional\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
должен указывать на папку с отчетами – для примера можно указать папку с примерами отчетов: \Demos\Reports.
Параметр FastReport.ConnectionStringName
содержит название строки подключения к базе данных. Эта строка должна быть прописана в секции <connectionStrings>
.
Запускаем сайт на исполнение и проверяем доступность веб-сервиса обратившись к файлу ReportService.svc, который размещен на сайте.
При размещении проекта на сервере не забудьте проверить наличие файлов FastReport.dll
, FastReport.Bars.dll
, FastReport.Service.dll
в папке \bin.
Пример клиентской программы находится в папке \Demos\C#\Web\WCFWebClient. В этом примере необходимо выполнить настройку Service References, нажав правой кнопкой мыши на ReportService в Visual Studio и выбрав пункт меню Configure Service Reference.
В открывшемся окне укажите адрес работающего веб-сервиса.