Почему опубликованный сайт ссылается на мою машину? - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть веб-сайт, который я публикую в 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 на чужом компьютере, опубликован и затем отправлен, эта ошибка вообще не возникает.

Есть идеи относительно того, что происходит?

Ответы [ 2 ]

2 голосов
/ 18 ноября 2009

Насколько я знаю, это часть базы данных отладки программы (файл .PDB). Ну, та часть, где вы думаете, что это ссылка на вашу машину.

Вы действительно должны использовать сервер сборки. ;-) Но это уже другая тема.

Причина возникновения ошибки заключается в том, что предположительно другие пользователи не имеют правильных списков ACL для сохранения в веб-папку.

1 голос
/ 18 ноября 2009

Это просто путь к исходному файлу, когда приложение было скомпилировано. Я уверен, что ваша ошибка не связана с этим. Я подозреваю, что ваша проблема в том, что, хотя у вас может быть разрешение на изменение файла, большинство пользователей этого не делают. Проверьте разрешения для файла / каталога, чтобы увидеть, нужно ли вам его открывать. Возможно, причина этого не всегда в том, что файлы нужно обновлять только один раз, и в конце концов кто-то с правильными учетными данными получает к ним доступ, и тогда исправлено для всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...