ASP.NET IIS7 проблема - PullRequest
       2

ASP.NET IIS7 проблема

1 голос
/ 19 июля 2011

Я пытаюсь запустить веб-приложение asp.net 3.5 в IIS 7.

выдает следующую ошибку: Не удается прочитать файл конфигурации из-за недостаточных прав доступа

Если я запускаю пул приложений с локальной учетной записью администратора, он работает. Я пытаюсь заставить его работать с учетной записью сетевой службы. Для этого я добавил учетную запись сетевой службы в группу IIS_IUSRS и дал разрешения на чтение для IIS_IUSRS в папке веб-приложения, которые также были переданы в файл web.config.

Есть идеи, что может быть не так?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Мне удалось решить проблему.

Файлы были «зашифрованы».В свойствах файла, вкладка Общие, Дополнительно, есть флажок для шифрования файла, и он был проверен для всех файлов в решении.Хотя мы можем нормально просматривать и открывать файлы в файловой системе, ASP.NET не может получить к ним доступ.Это решение было отправлено клиентом, я не уверен, как это получилось.

Подсказка: если проводник Windows перечисляет ваши файлы другим цветом, например зеленым, это признак того, что это не нормально;)

Спасибо за помощь и идеи

0 голосов
/ 19 июля 2011

Есть пара вещей, которые, я думаю, тебе следует сделать. Прежде всего, подумайте о .NET 3.5 как о .NET 2.0 с некоторыми дополнительными сборками на стороне, что и есть на самом деле. Тогда помните, что в IIS7 у нас есть новый интегрированный конвейер. Итак, вы хотите, чтобы запустить с использованием классического конвейера. Затем проверьте, под какой учетной записью вы работаете, и предоставьте этой учетной записи доступ к папкам вашего сайта.

Вот как: 1. В диспетчере служб IIS откройте его и выберите свой веб-сайт в списке веб-сайтов в древовидной структуре. 2. Нажмите «Основные настройки» на панели «Действия», и вы увидите, что такое пул приложений. Нажмите кнопку «SELECT», и вы увидите, что там написано «Режим конвейера» и версия платформы .Net. Вы хотите сказать> Net Framework версии 2.0 (даже если вы используете 3.5) и режим конвейера: классический. 3. Если у вас нет пула приложений на выбор, отмените его и перейдите в Пулы приложений в древовидном элементе управления слева. Нажмите Добавить пул приложений и добавьте тот, который говорит «Classing .NET AppPool», если его там еще нет. Выберите новый пул приложений и измените его основные параметры, чтобы установить для него .NET Framework версии 2.0.50727, а режим управляемого конвейера - Классический. Нажмите ОК 4. Теперь нажмите на дополнительные настройки. Если все ваши сборки не являются 64-битными, убедитесь, что для параметра Включить 32-битные приложения установлено значение ИСТИНА. Управляемый режим конвейера скажет Классический. * ОБРАТИТЕ ВНИМАНИЕ НА ЭТУ ЧАСТЬ: * В поле IDENTITY указывается учетная запись пользователя, под которой работает веб-сайт, чтобы вы знали, для чего потребуется разрешение на доступ к корню вашего веб-сайта с помощью web.config. Установите для этого "NetworkService" и нажмите OK. 5. Теперь вернитесь на свой веб-сайт в древовидном представлении, снова перейдите в раздел «Основные настройки» и установите для пула приложений классический конвейер, который вы только что настроили. 6. Теперь перейдите в папку Windows, где находится ваш сайт, и дайте разрешения на чтение и выполнение «СЕТЕВОЙ СЕРВИС».

Вуаля! Готово.

Легкий гороховый лимон. В любом случае это легко, когда ты знаешь, как это сделать!

0 голосов
/ 19 июля 2011

Я полагаю, что учетной записи необходимы как минимум разрешения на чтение файла applicationhost.config на компьютере (который хранится в папке% windir% \ system32 \ inetsrv \ config.

...