Windows Server上でWebサイトをデプロイして検証中に発生したエラーについて紹介します。サーバーエラー 404 – ファイルまたはディレクトリが見つかりません。検索中のリソースは削除された可能性があります。または、名前が変更されたか、一時的に使用不可能になっています。というメッセージが表示されてWebサイトが正常に表示されなくなりました。最初は正常に動作していたのに、途中で動かなくなりました。
動作環境
・Windows Server 2019
インターネットインフォメーションシステム(IIS)マネージャー上にWebサイトをデプロイしました。
エラーは画面遷移時に発生しました。GETパラメータを使って、処理させたいパラメータを受け渡していたところ、エラー画面が表示されるという事象です。
パラメータの文字列に特殊文字が入っているのかと思いましたが、エンコードしているし、そもそもローカルPCの開発環境では問題なく動作しています。(http://127.0.0.1/hogehoge)
原因はGETパラメータの最大文字数制約
開発したWebサイトのURLをメモ帳に張り付けたところ、文字数が2,200文字越えとなっていました。URLの長さには制約があることも知らずに、バンバンURL長が増えていくような怖いプログラムを作ってしまっていたのが原因となります。
URLの長さは2000文字以内に収めるというのが、GETリクエストの常識みたい…
対策方法 GETからPOSTへの変更
はい、そもそもGETなんて使わずPOST方式でプログラムを書けばよかったわけで、対応したところ問題なく動作しました。(おしまい)