У меня есть код, который пытается создать и записать в файл журнала в подкаталоге моего сайта (показано ниже). Если я поместил первый вызов этого кода в Page_Load() событие Default.aspx, он отлично работает каждый раз. Если, однако, я делаю первый вызов этого кода внутри события Global.asax Application_Start(), я получаю исключение, исключающее доступ, из библиотеки .NET IO, хотя путь, отображаемый в сообщении об исключении, верен.Почему в Application_Start не удается создать файл?
Кто-нибудь сталкивался с чем-либо подобным? Это как если бы код, начинающийся с Application_Start(), имеет более ограниченный набор разрешений, чем код, запущенный позже.
Kind желает ~ Патрика
using(StreamWriter writer = new StreamWriter(FullPathAndNameData, true))
{
string logEntry = DateTime.Now.ToString() + ": " + formattedMessage;
writer.WriteLine(logEntry);
writer.Flush();
}
Спасибо за это. К сожалению, поведение точно такое же. Действительно, похоже, что приложение не имеет одинаковых разрешений внутри Application_Start(). – Patrick
Я тестировал вышеуказанный код на локальном компьютере, и он отлично работает. Возможно, у вас есть вопрос «Написать разрешение» на нашем размещенном сайте. – Win
Я могу последовательно создавать/записывать файл в поддире из Page_Load of Default.aspx. Один и тот же код всегда терпит неудачу в Application_Start, даже если файл уже существует и был записан из Page_Load. Я прошел через это с хорошим техническим парнем в моем хостинг-провайдере, и единственный способ заставить его работать - это добавить сетевое разрешение на запись в папку, что означает, что кто-то может писать на него. На самом деле кажется, что разрешения в Application_Start не совпадают, как позже (например, Page_Load). Я не могу найти информацию об этой проблеме в любом месте. Кто-нибудь сталкивался с чем-то подобным? – Patrick