Mercurial リポジトリがあり、ブラウザでナビゲートすると問題なく表示されますが、デフォルト パスをブラウザでアクセスするのと同じ URL に設定してプッシュしようとすると、次のようになります。
abort: HTTP Error 404: Not Found
プッシュする URL は何らかの形で異なる必要がありますか?
Mercurial リポジトリがあり、ブラウザでナビゲートすると問題なく表示されますが、デフォルト パスをブラウザでアクセスするのと同じ URL に設定してプッシュしようとすると、次のようになります。
abort: HTTP Error 404: Not Found
プッシュする URL は何らかの形で異なる必要がありますか?
「コンテンツが大きすぎる」というのは私が持っていたものです。IIS ログに移動し、「404 13」を探します。
これを修正するには、IIS マネージャーで [要求のフィルタリング] オプションに移動し、[ヘッダー] タブを選択します。
次に、右側の「機能設定の編集」に進みます。次に、「最大許容コンテンツ (バイト)」フィールドに非常に大きな数値を選択します。
これで問題が解決しました。
Windows 2008 の IIS でホストされているメインの Mercurial リポジトリで突然このエラーが発生するように なりました。
IIS ログで失敗した要求のサブステータス コードを調べるとわかります (通常、通常の HTTP ステータス コードの後の番号です)。この場合、IIS はサブステータス 15を返します。これは、クエリ文字列が長すぎることを意味します。サブステータスコードを確認することを忘れないでください!
この問題を解決するには、IIS のクエリ文字列の最大長を増やす必要があります。
# Get the current query string size limit
c:\windows\system32\inetsrv\appcmd list config /section:requestFiltering -text:requestLimits.maxQueryString
# Set the new query string size limit
c:\windows\system32\inetsrv\appcmd set config /section:requestFiltering /requestLimits.maxQueryString:<NEW SIZE>
これは、適切に構成する必要があるこの構成に似ています:hgweb.config
/ = /home/my_username/hg/**
(最後に 2 つの星を付けて)
それとも、http と https の問題ですか?
https の場合、正しい.hgrc
ファイルが必要です。そうしないと、404 エラーが発生する可能性もあります。ファイルのマニュアル ページ
を参照してください。.hg/hgrc
[ui]
username = my.address@myco.com
password = mypassword
schemes = https
[paths]
default = https://myURL.kilnhg.com/Repo/Repositories/Groups/myrepo
同じ問題が発生し、CGIハンドラーに許可されたVERBになってしまいました。GET、POST、HEADに制限していましたが、すべてを許可するように変更することになり、正常に動作するようになりました。
多くのバイナリ ファイル (Web サイトでの jpg 更新) を含む特に大きなサイズの変更セットをプッシュしようとしたときに、このエラーを受け取りました。[ソース管理下にある jpg をソースと同じリポジトリに置くのは最善の方法ではないかもしれませんが、それは問題ではありません。]
このような場合、IIS 構成にアクセスできない場合は、一度にプッシュする変更セットを少なくすることで回避できます。TortoiseHg で Outgoing 機能を使用し、プッシュしたいサブセットの一番上のチェンジセットを右クリックして、Push To Here を選択します。繰り返す。