Program yang saya kembangkan dengan sistem file dikonfigurasikan di bawah IIS, dan ada beberapa masalah dengan cookie.
1. Hilangnya cookie. Saya menulis esai beberapa hari yang lalu "Masalah yang sangat sulit. Program web yang dikembangkan dengan mekanisme sistem file menggunakan vs2005 tidak dapat berjalan secara normal jika dikonfigurasi ke iis?" "" mencatat solusi saya terhadap masalah hilangnya cookie yang menyimpan izin administrator super. Meskipun masalah tersebut akhirnya teratasi, saya tidak memahami alasannya. Di akhir esai, saya memberikan alasan yang tidak masuk akal mengapa ia bekerja secara normal di bawah sistem file tetapi tidak di bawah iis: sistem file menyediakan server mikro setiap kali di-debug, dan memori dialokasikan kembali setiap saat. Pertama kali Anda menjalankannya di bawah iis adalah mengalokasikan memori Selama program tidak berubah dan tidak perlu dikompilasi ulang, memori tidak akan dialokasikan kembali. Hari ini saya melihat "Kumpulan Pertanyaan yang Sering Diajukan tentang Penggunaan Sesi di ASP.NET" yang disebutkan di sini: Ini mungkin terkait dengan lingkungan mesin, seperti firewall atau perangkat lunak anti-virus, dll. Coba matikan firewall (the alasan hilangnya Sesi harus terkait dengan alasan hilangnya cookie) Sama). Menurut saya apa yang dia katakan masuk akal. Berjalan di bawah sistem file tidak harus melalui firewall, tetapi berjalan di bawah iis harus melalui firewall. Sepertinya bukan hanya saya saja yang mengalami masalah ini. Saya belum pernah mengalami kehilangan cookie atau sesi saat menggunakan asp.net1.1 sebelumnya.
2. Karakter China di cookie kacau. Saya tiba-tiba menemukan tadi malam bahwa ada masalah lain dengan karakter China di cookie di bawah IIS, yang menunjukkan karakter kacau.
Butuh waktu lama untuk menyelesaikannya:
//Saat menulis cookie
string t =HttpUtility.UrlEncode (nilai Cina yang akan ditulis ke cookie);
HttpCookie c = HttpCookie baru("nama_pengguna", t);
Respon.Cookies.Add(c);
//Saat membaca cookie
t=Nilai cookie Cina yang diperoleh;
t = HttpUtility.UrlDecode(nama_guru);
Itu saja.
Ingatkan teman-teman yang menggunakan sistem file vs2005 untuk mengembangkan proyek agar memperhatikan.
Alasan perbedaan pengoperasian sistem file dan iis seharusnya terkait dengan mekanisme operasinya. Saya berharap dapat menemukan beberapa informasi yang memperkenalkan mekanisme operasinya!