У меня есть веб-сайт, который я публикую в Visual Studio 2008, а затем рассылаю другим людям. На одной из страниц необходимо изменить несколько файлов конфигурации, поэтому действие выполняется с использованием WindowsImpersonationContext внутри библиотеки классов, на которую ссылается веб-сайт.
protected void WithImpersonation(ExecuteUnderImpersonation action)
{
using(WindowsImpersonationContext context = Request.LogonUserIdentity.Impersonate())
{
action();
}
}
Однако, когда кто-то еще пытается отправить эту страницу, он выдает ошибку, что она была
Невозможно сохранить конфигурацию в файл 'C: \ Inetpub \ wwwroot \ SomeWebsite \ web.config'.
Глядя на StackTrace, я вижу эту запись:
в
SomeClassLibrary.SomeClass.WithImpersonation (ExecuteUnderImpersonation
действие) в FILEPATH ОТ МОЕЙ
МАШИНА : строка 23
Это, кажется, происходит только на одной конкретной странице, хотя несколько страниц вызывают один и тот же метод.
Если я опубликовал веб-сайт (в обновляемом режиме) в папке PrecompiledWeb и опубликовал его с соответствующими ссылками в каталоге bin, почему он ищет класс на моем компьютере? Ошибка даже не имеет смысла, если она ищет файл, который не существует на их сервере, не должны ли они получить совершенно другую ошибку?
Я взял тот же веб-сайт и установил его на одном из моих серверов, подключенных к домену. Если я попытался запустить ту же страницу с сервера, вошедшего в систему под своим именем или на своем компьютере, я не получу эту ошибку.
Сотрудник сказал ранее, что они также иногда получают эту ошибку, но она в конечном счете исчезает . Мы не можем точно определить причину проблемы, но если тот же веб-сайт должен быть извлечен из SVN на чужом компьютере, опубликован и затем отправлен, эта ошибка вообще не возникает.
Есть идеи относительно того, что происходит?