Назад | Перейти на главную страницу

Виртуальный каталог IIS 7 в доступе к сетевому ресурсу отказано

У меня есть веб-сервер с балансировкой нагрузки, на котором я пытаюсь настроить виртуальный каталог на одном сервере (server02) на сетевой ресурс на другом сервере (server01). Оба сервера - это IIS 7 в Windows 2008R2. Они не являются частью домена.

Я настраиваю виртуальный каталог на server02, подключаюсь к сетевому ресурсу как администратор server01 (в целях тестирования).

В IIS я могу просматривать файлы в виртуальном каталоге. Когда я нажимаю «Параметры теста» в основных настройках виртуального каталога, ошибок нет, и виртуальный каталог может без проблем подключиться к общему ресурсу.

Однако когда я пытаюсь запросить файл (http: //server02/media/image.jpg) через виртуальный каталог я получаю эту ошибку конфигурации "An error occurred loading a configuration file: Failed to start monitoring changes to '\\server01\media' because access is denied.".

Я понятия не имею, чем это вызвано, потому что согласно IIS соединение в порядке.

Учетная запись пользователя, под которой работает пул приложений вашего сайта, должна иметь разрешение на доступ к этому общему ресурсу. Измените это на учетную запись с правами на эту долю, и все будет в порядке.

Кроме того, какой смысл балансировать нагрузку на ваши веб-серверы, если вы собираетесь использовать server01 как единственную точку отказа? Вместо этого вам следует реплицировать эти данные или кластеризовать веб-серверы с общим хранилищем. То, что вы пытаетесь сделать, - не очень хорошая идея.

  1. добавить локального пользователя с одинаковым паролем в обеих системах
  2. Предоставить доступ этому пользователю в общей папке
  3. На своем веб-сервере запустите пул приложений под этим именем пользователя.

Если вы автоматически масштабируете свои серверы, чем вы хотите сделать это в коде, вы можете сделать следующее:

net.exe user  MyNewLocalUser Password! /ADD
net.exe share MyNewShare=C:\MyPath /Grant:MyNewLocalUser,full

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

            Using mgr As New ServerManager
            Dim MainApp As Site = mgr.Sites(SiteName)
            mgr.Sites(SiteName).Applications(0).VirtualDirectories.Add("/MyVirDir", "\\server\share")

            Dim appPool As String = Nothing
            For Each app In MainApp.Applications
                appPool = app.ApplicationPoolName

            Dim myAppPool As ApplicationPool = mgr.ApplicationPools(appPool)
            myAppPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser
            myAppPool.ProcessModel.UserName = "MyNewLocalUser"
            myAppPool.ProcessModel.Password = "Password!"
            mgr.CommitChanges()
            Next

        End Using