2005年12月25日
川俣晶の縁側ソフトウェア技術雑記total 22444 count

じゃじゃ馬・Visual SourceSafe 2005のインターネット機能の乗りこなし方!?

Written By: 川俣 晶連絡先

 Visual SourceSafe 2005は、インターネット機能を使う場合、とんでもないじゃじゃ馬であることが分かりました。

 まるまる2日ぐらい調査に使ってしまいましたが、やっと動くところに到達しました。

Visual SourceSafe 2005のインターネット機能とLANサービス §

 SourceSafeは本来ファイル共有型のソースコード管理ソフトです。

 しかし、ファイル共有以外の手段でアクセスを行う2つの機能が2005版から追加されています。

 1つは、LAN経由で使用する「LANサービス」です。

 もう1つは、SOAP(Webサービス)経由で使用する「SourceSafeインターネット」です。

 この2つは全くの別物です。

 前者は、専用のサービスが走り、TCPのポートをLISTENします。

 後者は、IIS上にインストールされ、IISを経由してアクセスを受け取り、特にプロセスを常駐させたりしません。

LANサービスについて §

 本筋と関係ありませんが、調べたことをメモっておきます。

 Visual SourceSafeアドミニストレータで「LANサービス」を有効に設定すると、Visual SourceSafe LANサービス(SSService.exe)というサービスが動きます。

 一度も有効にしない状態ではサービスの一覧に登録されていませんが、初回開始時にはサービスの登録が行われます。

 このサービスは、netstat -abとして調べたところ以下のような結果が得られました。

TCP xxx:3593   xxx.xxx.piedey.co.jp:0  LISTENING   2820

[SSService.EXE]

 ポート3593でLISTENしているようですが、常に同じポート番号ではないかもしれません。

 ちなみに、このポートにtelnetでつないででたらめに文字を打ってみても応答はありませんでした。

 SSService.exeはネイティブコードのモジュールらしいので、.NET Reflectorのようなツールで調べるのは無理のようです。(可能でもたぶん利用規約上ダメ)

参考情報 §

 非常に参考になったページを紹介しておきます。

Installing and configuring Microsoft Visual SourceSafe for Internet (Remote) access

 英文ですが、日本語での有益な情報はほとんど発見できませんでしたので、英語を読むしかないでしょう。

どこにインストールされるの? §

 さて、本題の「SourceSafeインターネット」の話題に入ります。

 この機能を使用する上での罠はいくつもあります。

 まず、機能を有効化したとき、何がどこにインストールされるのかほとんど教えてもらえません。

 あとで紹介する手動登録の手順も参考になりますが、知っていると役に立つのは以下の2つの情報です。

  • Webサービスは、「既定のWebサイト」の下に作成されたSourceSafeという仮想ディレクトリの中のVssService.asmx
  • 仮想ディレクトリの実体は"C:\Program Files\Microsoft Visual SourceSafe\VSSWebService"(デフォルトのままでインストールした場合)

2種類のアカウントの罠 §

 認証に使われるアカウントが2種類ある罠があります。

 「SourceSafeインターネット」は、基本的にWindows認証によって認証します。

 しかし、SourceSafe自身も独自のアカウント情報を持っています。

 通常は、Windows認証の結果を信頼するモード(「ネットワーク ログオン ユーザー名を基に自動的にユーザーをログオン」)でSourceSafeを動かすと思いますが、その場合でも、「Windows認証するアカウントと同じアカウト名がSourceSafe側に必要」となります。

 そこで気になるのはWindows認証する際にマシン名やドメイン名をつける必要があることですが、これらはSourceSafe側で認識する際には無視されるようです。

 ちなみに、Windows認証だけ通って、その先で何かトラブルがあると、ほとんど参考になる情報が得られません。

 常識的な態度で取り組んでいると、この段階でお手上げになります。いくら外部に情報を公開するのは危険だからといって、トラブルシューティングのヒントがあまりにも乏しいのは、明らかな製品の問題点と考えます。

指定値の整合性の問題 §

 URLやUNCを多用しますが、これらの表記は厳密に一致させる必要があるようです。

 たとえば、\\servername\……と、\\servername.domainname\……の双方でアクセス可能なサーバがあったとしても、2つは厳密に区別して扱わねばなりません。混用すると同じサーバとして扱われないケースがあります。

「SourceSafeインターネット」インストール不能 §

 特定のマシン上で発生した問題です。

 Windows 2000 ServerのActive Directoryのドメインコントローラ上に「SourceSafeインターネット」をインストールしてみたところ、エラーが発生して有効化が完了できませんでした。

 以下の2つの手順を取ることで、動作に成功しました。

手動インストールする §

 手順(英文)は以下にあります。

 How to: Enable Remote Access Manually

 手動インストールの手順は製品マニュアルにも記述されています (日本語)。

 ただし、32bit OSなら、64bit関係の手順は全て抜いてOKです。

 説明が一部不十分で分かりにくい(download_virtual_folder_name等が何か分かりにくい)ので、正常にインストールできるマシン上で有効化した上で、そのマシンのweb.configファイルやsourcesafe.iniファイルを参考にして書き換えると良いでしょう。

ASP.NETを実行するアカウントの変更 §

 通常ASP.NETは「IWAM_マシン名」というアカウントで動きますが、制限が多すぎるようなので、「System」に入れ替えます。

 この手順は以下にある通りに実行します。

ASP.NET のプロセス ID と要求 ID

 ちなみに、この手順はセキュリティが甘くなるリスクがあるのでお勧めではありません。私がこれを実行したのは、このサーバが私以外によって使われない内部LAN上にあって公開されることがあり得ないものであると同時に、実験サーバ的な色彩が強いものであるためです。一般的には、ドメインコントローラ上でソースコードを管理するWebサービスを動かすべきではないでしょう。

 ついでに言えば、公開されないサービス(内部LANにしか使わせない)ならば、「SourceSafeインターネット」よりもLANサービスの方が良いようなので、無理に行う価値も低そうです。

複数データベース取り扱いの不可能性 §

 アップロード・ダウンロードディレクトリ(仮想ディレクトリ)はWebサービスの仮想ディレクトリに対して、固定的に割り当てます。

 また、アップロード・ダウンロードディレクトリ(実体)は特定のSourceSafeデータベースに固有の存在として割り当てます。

 両者を併せて考えると、1つのWebサービスは、1つのデータベースを扱うために使うことしかできません。

 おそらく、別ディレクトリにWebサービスを手動インストールすると、別データベースも扱えると思いますが面倒な作業になります。

Visual Studio 2005からの接続 §

 「SourceSafeインターネット」「LANサービス」の双方とも、SourceSafeエクスプローラからは扱えません。

 Visual Studio 2005のプラグインからのみ扱えます。

 使用する前に、Visual Studio 2005の「ツール」メニューの「オプション」の「ソース管理」から、使用するプラグインを選択しておきます。ここでは、"Microsoft Visual SourceSafe (Internet)"です。

 データベースへの接続を試みるには、「プロジェクトを開く」を選びます。

 そして、「探す場所」として、"SourceSafe (Internet)"を選びます。

 次に、SourceSafeデータベースの追加をダブルクリックします。

 ウィザードが開くので「次へ」をクリックすると以下のダイアログボックスが出ます。

SourceSafeインターネットの指定

 これが分かりにくいので詳しく説明します。

 まず、アドレス欄は以下の2つの入力を受け付けます。

  • ホスト名だけ (例: "xxx.xxx.piedey.co.jp")
  • URL (例: "http://xxx.xxx.piedey.co.jp/SourceSafe/VssService.asmx")

 ホスト名だけだけを入力した場合は、自動的に手前にhttp://あるいはhttps://が、後ろに/SourceSafe/VssService.asmxが補われます。

 フォルダは、Visual SourceSafeアドミニストレータで開いたデータベースのUNCをそのまま一切変えることなく入力します。サーバの名前を省略形にしたりすると、受け付けられない可能性があります。(上記「指定値の整合性の問題」を参照)

 これで、「SourceSafeインターネット」経由でのデータベースへのアクセスが可能になります。

バインドという手順 §

 データベース中の既存のプロジェクトがあり、それがVisual Studioでソースコード管理されていなかった場合、そのままプロジェクトを開くことがでいません。

 バインドという手順が必要となります。

 詳しい使い方までは突っ込んでいませんが、一度SourceSafeエクスプローラでチェックアウトし、それをVisual Studioで開いてバインドを行い、チェックインするという手順を行えば良いようです。

感想・これはじゃじゃ馬ならしだ! §

 いや本当に。

 これほど面倒な作業になるとは思っていませんでした。

 しかも、これだけ手間を掛けてなおhttps経由のアクセスの設定はまだできていません。

 しかし、本質的にじゃじゃ馬ならしは好きであるという事実に気づきました。というか、避けて通るのは嫌なのですね。

2005年12月26日追記・.NET Framework 1.1がインストール済みの場合 §

 書き忘れていたので書き足します。

 すべてのマシンで発生していない問題ですが。

 SourseSafeアドミニストレータで「SourceSafeインターネット」を有効にした場合、既に.NET Framework 1.1がインストール済みの場合、1.1で実行するように構成される現象を経験しています。この場合、IISのサイトのプロパティで、使用するASP.NETのバージョンを1.1から2.0に切り換えることで動くようになりました。

Facebook

トラックバック一覧

2006年10月11日[Blogリンク]VSSのインターネット機能From: おぎわら@.NET道場 Blog(わんくま編)

[Blogリンク]VSSのインターネット機能 続きを読む

2006年02月01日Visual SourceSafe 2005がIISを認識しない場合From: Neutral Scent

例によってVSS2005も、ノウハウが全くなくてやっかいな代物なわけですが、がんばればトラブルは解決できるものです。そんなわけで、今日解決した問題を覚え書き。 VSS2005のWebアクセスを利用する場合、SourceSafe Administrationでサーバー/構成を実行し、WebアクセスをOnにするわけですが、なにげなく「IISがインストールされていない」とエラーを吐いてくることがあります。IIS動いてるのに!です。 そんな場合、の解決策が、こちら MSDN ForumsRe: Problem ... 続きを読む

2005年12月25日Visual SourceSafe 2005のインターネット機能From: om's System

じゃじゃ馬・Visual SourceSafe 2005のインターネット機能の乗りこなし方!? 川俣さんがVSS 2005のインターネット機能について書かれています。 なんかいろいろ設定が面倒だとか。 まだ情報が少ないところなので、こういう情報はありがたいです。 続きを読む

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2006年
01月
02日
ブラウザ間非互換性・かなりの惨状、IE/OperaのXML DOM非互換性
3days 0 count
total 7560 count
【技術雑記】の前のコンテンツ
2005年
12月
22日
ソフト冒険記・Visual SourceSafe 2005 いけそうでいけないもどかしさ!?
3days 0 count
total 6621 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20051225173254
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.