事業内容

WCFサービスをIISで動かす




WCFサービスをIISで動かしてみます。
自分の環境はVisualStudio2008にWindows7Professionalです。
今回はちょっと長くなります。
まず、IISでサイトを作成し、アクセスしてみます。




IISの「認証」を選択し、「匿名認証」を有効にします。
※Windows認証をIISで追加する必要があると思ったのですが、一旦追加してからまた抜いてもいけたのでたぶんいらないかと。
その上でアクセスしてみます。




今度は「ディレクトリの参照」を選択後、「有効にする」を選択します。
その上でアクセスしてみます。




ここまで終わってからWCFサービスを発行します。
管理者でVisualStudioを実行するのを忘れないようにしてください。

発行したサービスにアクセスしてみます。




ここについては、発行するWCFサービスのWeb.configのsystem.webServer/handlersに以下を追加。




上記の状態で再度アクセスしてみます。




この原因としては、ASPが足りないらしいので、IISでASP.NETを追加しておきます。
この前段階で別エラーがでる場合もありますが(自宅ではでなかった)、ASP入れたら解決しました。
「インターネットインフォメーションサービス」⇒「WorldWideWebサービス」⇒「アプリケーション開発機能」にあります。

このときExpressの場合などASP.NETがちゃんとインストールされていない場合もあるので注意してください。
その場合は、「%windir%\Microsoft.NET\Framework\vX.XXX」にあるaspnet_regiis.exeを利用してインストールしてください。
上記を実施したうえでアクセスしてみます。




これでC#のソースから呼び出して使えるようになりました。
呼び出し部分は割愛します(ちゃんと呼び出せたことは確認しました)。


後、自宅ではでなかったけど苦戦したパターンをご紹介。
コード:0x80070021
中身は「ページに関連する構成データが無効であるため、要求されたページにアクセスできません。」というもの。

これは「%windir%\system32\inetsrv\config」にある「applicationHost.config」を編集します。
未編集状態であれば62行目にhandlers、70行目にmodulesに対するoverrideModeDefaultが「Deny」となっている記載があると思います。
sectionGroupはsystem.webServerです。
それを「Allow」として保存し、IISを再起動すれば直ります。
以下に該当箇所の画像を貼っておきます。




WCFへ

テンプレートのpondt