SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

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

f:id:arakan_no_boku:20210323234408p:plain 

目次

TortoiseSVNクライアントでコミットエラー

仕事で使う資料のバージョン管理を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 発行サービス」です。

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

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

f:id:arakan_no_boku:20210324002518p:plain

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

 

Windowsアップデートの影響で設定が変わったとしか思えない

問題が起きた時に、確認すると、スタートアップの種類が「自動」になってました。

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

誰かが間違ってサービスの設定を修正してしまったのではないか?

そう疑う人も確かにいたのですけど、そんなにさわるサーバーではなく考えづらいというのが正直なところです。

では何故?

IISのスタートアップの種類が「自動」に変わっていたのか。

ここからは推測しかできないですが、状況から「WindowsアップデートでIISがアップデートして、その影響でサービスの設定が自動に変わってしまった」としか思えません。

なんにしても。

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

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

それが基本ですからグウの音もでません。

まいりました。

ではでは。