ファイル システムで開発したプログラムは IIS で構成されており、Cookie にいくつかの問題がありました。
1. Cookie の喪失 先日「非常に難しい問題。vs2005 を使用したファイル システム機構で開発された Web プログラムは、iis に設定されていると正常に実行できませんか?」というエッセイを書きました。 「」には、スーパー管理者の権限を保存する Cookie が失われる問題に対する私の解決策が記録されています。最終的に問題は解決されましたが、原因はわかりませんでした。このエッセイの最後で、ファイル システムでは正常に動作するが、iis では動作しないという突飛な理由を述べました。ファイル システムはデバッグのたびにマイクロサーバーを提供し、メモリは毎回再割り当てされます。 iis で初めて実行するときは、プログラムが変更されず、再コンパイルする必要がない限り、メモリは再割り当てされません。今日、「ASP.NET でのセッションの使用に関するよくある質問集」に記載されているのを目にしました。これは、ファイアウォールやウイルス対策ソフトウェアなどのマシンの環境に関連している可能性があります。ファイアウォール (セッションが失われる理由は、Cookie が失われる理由と関連している必要があります) 同じ)。彼の言ったことは理にかなっていると思います。ファイル システムで実行する場合はファイアウォールを通過すべきではありませんが、iis で実行する場合はファイアウォールを通過する必要があります。この問題を経験しているのは私だけではないようです。これまでに asp.net1.1 を使用したときに Cookie やセッションの損失に遭遇したことはありません。
2. Cookie 内の漢字が文字化けする 昨夜、IIS の Cookie 内の漢字に別の問題があり、文字化けが発生していることに気づきました。
それを解決するのに長い時間がかかりました:
//Cookieを書き込むとき
string t =HttpUtility.UrlEncode (Cookie に書き込まれる中国語の値);
HttpCookie c = new HttpCookie("user_realname", t);
Response.Cookies.Add(c);
//クッキーを読み取るとき
t=取得した中国語の cookie の値。
t = HttpUtility.UrlDecode(教師名);
それでおしまい。
vs2005 ファイル システムを使用してプロジェクトを開発している友人に注意するよう伝えてください。
ファイルシステムとiisの動作の違いの理由は、それらの動作メカニズムに関連しているはずです。それらの動作メカニズムを紹介する情報が見つかることを願っています。