この記事はTFS Advent Calendarの19日目の記事です。
サイトはこちら:http://atnd.org/events/22819
前回は、OData Service for TFSのセットアップについて書きましたが、今回は設定についてです。結構強引なことをやってますので、ちゃんと知識のある方はちゃんとした方法で対応してくださいw
OData Service for TFSを動かすためには
・Windows Azure Compute Emulator上で動かす
・IIS 7.0上で動かす
という2つの選択肢がありますが、今回はIIS7.0上で動かす方法をとります。
なぜかというと、Windows Azure Compute Emulatorは、IPアドレスが「127.0.0.1」しか使えないので、公開するには適していないからです。
さて、設定手順ですが、「StartHere.html」-「Introduction」-「Run the OData Service loccaly, see the Configuration and Running the OData Service」にある「Running the Service outside the Windows Azure Compute Emulator (using IIS 7)」になります。
ただ、この手順に従うと、IISの80番ポートを使うことになりますが、TFSサーバでSharePointが稼働している環境だとポートが競合し、うまく動作しません。
今回は、IIS上に別サイトを作成し、OData用のポートを割り当てるようにします。
最初に、IISに別サイトを作成します。
IISマネージャーで「Webサイトの追加」を実行します。
設定内容は
・サイト名:ODataTFS
・アプリケーションプール:ASP.NET v4.0
・物理パス:OData Services for TFSインストール先の「code」フォルダ
・ポート:9999
にします。
作成できたら、OData Service for TFSをインストールしたフォルダの「code\ODataTFS.Web\Setup」にある
・InstallVisualCRedist.cmd
・InstallTFSObjectModel.cmd
を実行します。
次に、Microsoft Visual Web Developer 2010 Expressを管理者権限で起動し、「code\ODataTFS.sln」を開きます。
「ODataTFS.Web」がスタートアッププロジェクトになっているのを確認してください。
(デフォルトで「ODataTFS.Web」がスタートアッププロジェクト(太字)になっていると思います)
「Web.config」を開き、<system.diagnostics>-<trace>-<listeners>にある「<add type="Microsoft.WindowsAzure.~」をコメントアウトします。
<appSettings>にある「add key="ODataTFS.TfsServer"」の後ろのvalueに接続先のサーバを指定します。(VS IDEでの接続先と同じ設定です)
ここで、web.configを一旦保存します。
ODataTFS.Webプロジェクトのプロパティを開き、「Web」タブにある「プロジェクトのURL」に対して、先ほど作成したIISサイトのポート番号を追加し、「仮想ディレクトリの作成」を押します。
「仮想ディレクトリは正しく作成されました。」とメッセージボックスが表示されればOKです。
その後、「配布パッケージの作成」を実行します。
この状態で、「http://localhost:9999/ODataTFS.Web/」にアクセスすると、トップページが表示されます。
下の方に、各種リソースにアクセスするためのパスが記載されていますが、「http://localhost」を「http://localhost:9999/ODataTFS.Web」に置き換えればアクセスできます。
さらに、「http://localhost:9999/ODataTFS.Web」の「localhost」をサーバ名に置き換えれば、クライアントからもアクセスできます。
ためしに、WorkItemsコレクションにアクセスしてみると、こんな感じで表示されます。
ということで、OData Services for TFSがローカルのTFSサーバで使えるようになりました。
ODataが使えると、別サーバからTFSのリソースが操作できるようになるので、Webアプリでプロジェクト運営に合わせたサイトを作成するとかも簡単にできるようになるのかなと。
個人的には、codeplexにある「TFS On The Road」のような、WindowsPhone7からODataを使ってTFSサーバにアクセスするアプリを作ってみたいですが、スキルの問題が^ ^;