Можно очень просто реализовать веб-сервис, используя библиотеку FastReport.Service.dll (WCF Service Library), которая поставляется совместно с FastReport.
Наш пример будет основан на создании простейшего веб-приложения с функциями веб-сервиса с нуля, но так же можно доработать уже существующий ваш проект – главное, чтобы он работал под управлением .NET Framework 4.0 или более новым.
Запускаем Visual Studio и создаем новый проект ASP.NET Web Application под .NET Framework 4.0.
Добавляем reference на библиотеки 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\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, который размещен на сайте.
При размещении проекта на сервере не забудьте проверить наличие файлов 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.
В открывшемся окне укажите адрес работающего веб-сервиса.
Продолжение следует.