VisualStudio 2008 のただのクラスライブラリプロジェクトを WCF に変換する

やっていることは Visual Studio 2008 のデバック時にWcfSvcHost.exeによりWCFサービスが自動でホストされないようにする の逆です。

csproj ファイルに対して、ProjectTypeGuids を追加する。もう一つ、まだ追加していなければ System.ServiceModel に対する参照を追加する。

--- C:/Users/foo/.svn/sample.csproj-revBASE.svn000.tmp.csproj	Mon Dec 15 17:28:36 2008
+++ C:/Users/foo/sample.csproj	Mon Dec 15 17:19:53 2008
@@ -9,6 +9,7 @@
     <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>sample</RootNamespace>
+    <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <AssemblyName>sample</AssemblyName>
     <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
@@ -47,6 +48,9 @@
     <Reference Include="System.Runtime.Serialization">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System.Web" />
     <Reference Include="System.Xml" />
   </ItemGroup>

また、WccfTestClient.exe をデバッグ時自動的に開始するには、デバッグの開始オプション コマンドライン引数に /client:"WcfTestClient.exe" を追加。

最後に、app.config に対してWCF構成の編集を行い、サービスだけでなくメタデータが取得出来る状態にしておく。とりあえずサービスの中身をデバッグしたいだけであれば、basicHttpBinding を追加し、baseAddress を指定するのが楽。大体こんな感じ

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
...
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="sample.TestBehavior"
        name="sample.TestService">
        <endpoint address="Testsvc" binding="basicHttpBinding" bindingConfiguration=""
          contract="sample.ITest" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost/service" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="sample.TestBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。