"BOKU"のITな日常

興味のむくまま気の向くままに調べたり・まとめたりしてます。

TortoiseSVNクライアントでコミットエラー。Unable to connect to a repository

f:id:arakan_no_boku:20210323234408p:plain 

仕事で使う資料のバージョン管理をSVNでしています。

WindowsサーバーにSubVersionサーバーを立て、クライアントはTortoiseSVNです。

ja.osdn.net

3年くらい、一度のエラーもなく安定して使ってたのですが、ある日突然こんなエラーがでました。

Unable to connect to a repository at URL 'https://svn.XXXXXXXX/'
The server at 'https://svn.XXXXXXXX' does not support the HTTP/DAV protocol

 調べたところ、「does not support the HTTP/DAV protocol」の意味するところは「URLが無効だ」ということのようです。

おそらく、Webサーバー(今回はApatch)がなんらかの原因で停止している可能性が高いので、原因を取り除いて、Webサーバーのサービス(httpd)を開始すれば、復旧するだろうということになり、それほど難しい作業ではないことから、システム管理担当ではなく、自分のほうでやっとくよ・・ということになりました。 

SubVersionサーバーは、この手順を参考に構築したとのことです。

blogs.osdn.jp

確認すると、Subversionというサービス名で「"C:\Apache24\bin\httpd.exe" -k runservice」を登録してあるのですが、こいつが停止してました。

Confファイルをチェックしても特にエラーはありません。

でも、サービスの開始をしてみるとエラーになります。

メッセージは、「・・アクセスできません」とのこと。

そこで、ファイアウォールの設定とか、一通りチェックしましたが、正常稼働時の状態の記録資料と全く同じです。

そこで、使用中のポートを調べてみました。

netstat –nao | find “:80”

netstatのオプションは

  • -n IPアドレスやポート番号を数値で表示
  • -a LISTENING状態のTCPポートも表示する
  • -o そのコネクションを所有しているプロセスのID(PID)を表示する

で、findでポート80を抜き出してます。

すると・・。

f:id:arakan_no_boku:20210324001643p:plain

いました・・こいつが原因です。 

上記で、LISTENINGしているPIDを、タスクマネージャで確認しておいかけると、IISが動いてました。

ja.wikipedia.org

IISのサービス名は「W3SVC」で、表示名は「World Wide Web 発行サービス」です。

確認すると、確かに「実行中」です。

しかも、スタートアップの種類が「自動」になってます。

これでは、Windowsアップデートで再起動した場合に、IISのサービスが先にあがってしまって、Subversionサービスの邪魔をする・・なんて、普通におこりえます。

たぶん。

今回、それが本当に発生したのでしょう。

原因がわかれば対処は簡単です。

W3SVCサービスを停止して、スタートアップを「無効」にします。

f:id:arakan_no_boku:20210324002518p:plain

その後、Subversionサービスを開始したら、すんなり復旧しました。

不思議なのは。

W3SVCサービスのスタートアップの種類が何故「自動」だったのか?です。

実は、IISは初期設定時に無効にしてあると聞いてましたし、実際、作業記録にも証拠が残ってました。

だいいち、自動のままだったら3年間の間に、同じことが発生してたはずです。

かといって。

誰かが、わざわざ変更するとも思えないし、Windowsアップデートが無効のサービスを自動に変えてしまうなんて、聞いたことがないです。

ということで、根本原因はわからないままなのですが、IISが起動してもポートがバッティングしないように、無効にするだけじゃなくて、IISのポートを変更しておくとかしとかないとダメだね・・初期設定時の手順漏れだね・・みたいな話になったようです。

同じ原因で再発はしないでしょうけど。

なんか、狐に化かされたみたいな・・妙な後味ではありました。

ではでは。