Программа, которую я разработал под файловую систему, была настроена под IIS, и были некоторые проблемы с файлами cookie.
1. Потеря файлов cookie. Несколько дней назад я написал эссе «Очень сложная проблема. Веб-программа, разработанная под механизм файловой системы с использованием vs2005, не может нормально работать, если она настроена на iis?» "" записал моё решение проблемы потери файлов cookie, хранящих права суперадминистратора. Хотя проблема наконец-то была решена, я так и не понял причину. В конце эссе я привел надуманную причину, почему под файловой системой она работает нормально, а под iis нет: файловая система предоставляет микросервер каждый раз, когда ее отлаживают, и память каждый раз перераспределяется. При первом запуске под iis необходимо выделить память. Пока программа не изменится и ее не потребуется перекомпилировать, память больше не будет перераспределяться. Сегодня я увидел упомянутый здесь «Сборник часто задаваемых вопросов об использовании сеанса в ASP.NET»: Это может быть связано со средой компьютера, например брандмауэром или антивирусным программным обеспечением и т. д. Попробуйте отключить брандмауэр ( причина потери сеанса должна быть связана с причиной потери файлов cookie) То же). Я думаю, что то, что он сказал, имеет смысл. Работа под файловой системой не должна проходить через брандмауэр, но работа под iis должна проходить через брандмауэр. Кажется, я не единственный, кто столкнулся с этой проблемой. Я никогда раньше не сталкивался с потерей файлов cookie или сеансов при использовании asp.net1.1.
2. Китайские иероглифы в файлах cookie были искажены вчера вечером. Я внезапно обнаружил, что существует еще одна проблема с китайскими иероглифами в файлах cookie под IIS, отображающими искаженные символы.
Решение этой проблемы заняло много времени:
//При записи файлов cookie
string t =HttpUtility.UrlEncode (китайское значение для записи в файлы cookie);
HttpCookie c = новый HttpCookie("user_realname", t);
Response.Cookies.Add(c);
//При чтении файлов cookie
t = полученное значение китайского файла cookie;
т = HttpUtility.UrlDecode(имя_учителя);
Вот и все.
Напомните друзьям, которые используют файловую систему vs2005 для разработки проектов, чтобы они обратили внимание.
Причина разницы в работе файловой системы и iis должна быть связана с их механизмами работы. Я надеюсь найти некоторую информацию, знакомящую с их механизмами работы!