Search Results for

    Show / Hide Table of Contents

    Windows サービスでホストされる WCF サービスを作成する

    Visual Studio を開いて、Windows サービス プロジェクトを作成します。

    Service1.cs のデザイナーを開きます。

    サービスの名前を自分で選んだ名前に変更します。

    ウィンドウを右クリックし、メニューから[インストーラーの追加]を選択します。

    serviceInstaller1 コンポーネントのプロパティを編集して、DisplayName を設定します。

    serviceProcessInstaller1 のコンポーネント プロパティで、サービスのアカウントの種類を LocalSystem に設定します。

    プロジェクトの参照に System.ServiceModel と FastReport.Service.dll を追加します。

    アプリケーション構成ファイルを作成します。

    新しい app.config ファイルに次のテキストをコピーします。

    <?xml version="1.0"?>
    <configuration>
     <appSettings>
     <!-- レポートを置くフォルダーへのパス -->
     <add key="FastReport.ReportsPath" value="C:\Program files (x86)\FastReports\FastReport .NET Professional\Demos\Reports" />
     <!-- レポートの接続文字列の名前 -->
     <add key="FastReport.ConnectionStringName" value="FastReportDemo" />
     <!-- 使用可能な形式 PDF、DOCX、XLSX、PPTX、RTF、ODS、ODT、MHT、CSV、DBF、XML、TXT、FPX のカンマ区切りのリスト。 
     このリストの項目は、順序を変えても削除してもかまいません。 -->
     <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 (x86)\FastReports\FastReport .NET Professional\Demos\Reports\nwind.xml"/>
     </connectionStrings>
     <system.web>
     <compilation debug="true" />
     <membership defaultProvider="ClientAuthenticationMembershipProvider">
     <providers>
     <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
     </providers>
     </membership>
     <roleManager defaultProvider="ClientRoleProvider" enabled="true">
     <providers>
     <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
     </providers>
     </roleManager>
     </system.web>
     <!-- サービス ライブラリ プロジェクトを配布する場合は、構成ファイルの内容をホストの app.config ファイルに追加する必要があります。 
     System.Configuration はライブラリの構成ファイルをサポートしていません。 -->
     <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" />
     <host>
     <baseAddresses>
     <add baseAddress="http://localhost:8732/FastReportService/" />
     </baseAddresses>
     </host>
     </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>
     <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
     </startup>
    </configuration>
    

    Service1.cs のエディターに移動して次の行を追加します。

    using System.ServiceModel;
    

    サービスのクラスを次のように変更します。

    public partial class ReportService : ServiceBase
    {
     ServiceHost reportHost;
    
     public ReportService()
     {
     InitializeComponent();
     }
    
     protected override void OnStart(string[] args)
     {
     if (reportHost != null)
     reportHost.Close();
     reportHost = new ServiceHost(typeof(FastReport.Service.ReportService));
     reportHost.Open();
     }
    
     protected override void OnStop()
     {
     reportHost.Close();
     reportHost = null;
     }
    }
    

    .NET Framework に付属しているコマンド ライン ユーティリティ InstallUtil.exe を使用して、サービスをインストールすることができます。たとえば、次のように実行します。

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "C:\Program Files\FRRep.Net\WCFWindowsService\WCFWindowsService\bin\Debug\WCFWindowsService.exe"
    

    次のコマンドによってサービスを開始できます。

    net start ReportService
    

    Web ブラウザーを開いて、http://localhost:8732/FastReportService/ アドレスを確認します。このアドレスは app.config の baseAddress で設定されたものです。フォルダーやポートは自分で選んだものに変更することができます。

    サービスを停止するコマンドとサービスをアンインストールするコマンドは以下のとおりです。

    net stop ReportService
    
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u "C:\Program Files\FRRep.Net\WCFWindowsService\WCFWindowsService\bin\Debug\WCFWindowsService.exe"
    
    Back to top © 1998-2025 Copyright Fast Reports Inc.