Ошибка IIS 7 500 при доступе к виртуальным папкам - PullRequest
4 голосов
/ 16 марта 2012

У меня проблема с IIS, я пытаюсь найти путь к виртуальной папке.

Мое приложение (.Net 3.5 SP1, MVC 1.0) генерирует файлы результатов отчетов, которые попадают через виртуальный путь в vfiler на основе Unix (я думаю, что целью является устройство NetApp). Когда мои пользователи пытаются получить доступ к отчетам через HTTP-запрос через IIS (размещенный на WinServ 2k8 R2 64-bit), они получают следующую ошибку 500:

Log Name:      Application
Source:        ASP.NET 2.0.50727.0
Date:          3/14/2012 1:07:20 PM
Event ID:      1185
Task Category: File Monitoring
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      %APPLICATION_SERVER%
Description:
Failed to start monitoring changes to '%PATH_TO_FILE_SHARE%' because the network BIOS command limit has been reached. For more information on this error, please refer to Microsoft knowledge base article 810886. Hosting on a UNC share is not supported for the Windows XP Platform.

У меня не так много видимости в этой среде (я являюсь поставщиком приложения), но проблема, кажется, накапливается, и только тогда, когда IIS обменивается данными с подключением. Если я вручную введу путь к окну команд / запусков на клиентском компьютере, я смогу получить доступ к файлу, что заставит меня поверить, что оно не основано на разрешениях. Я также могу получить доступ к нему в диспетчере IIS. Когда я делаю IISRESET, проблема ненадолго исчезла.

Есть мысли? Я пытался следовать инструкциям в (довольно старой) статье KB, но это не помогло.

РЕДАКТИРОВАТЬ: Я должен отметить, что это производственная система

Ответы [ 2 ]

1 голос
/ 20 декабря 2013

Это одна из худших проблем, с которыми я столкнулся при хостинге с IIS.

Вот все, что мы попробовали, но безрезультатно - я публикую их для вас на случай, если, возможно, они сработают в вашем случае:

В окне IIS :

  1. DWORD FCNMode в HKLM \ Software \ Microsoft \ ASP.NETchange / add со значением 1 для отключения.
  2. DWORD FCNMode в HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET изменить / добавить со значением 1, чтобы отключить.
  3. DWORD MaxCmds в HKLM \ SYSTEM \ CurrentControlSet \ Services \ lanmanworkstation \ Параметры меняются / добавляются со значением> 50, максимум 65535 - мы пробовали значения вплоть до 65535.
  4. DWORD MaxMpxCt в HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Параметры изменяются / добавляются со значением> 50, не более 65535 - в окне IIS вы хотите настроить его так же, как MaxCmds.
  5. Измените пул приложений, чтобы в нем отсутствовал управляемый код
  6. Остановите IIS от проверки подкаталогов для файлов web.config. Перейдите на сервер верхнего уровня в диспетчере IIS -> редактор конфигурации -> раздел "system.applicationHost / sites" -> откройте коллекцию -> внутри каждого сайта измените virtualDirectoryDefaults-> allowSubDirConfig в False -> закрыть редактор коллекции и нажать кнопку «Применить».

На файловом сервере:

  1. DWORD MaxWorkItems в HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Параметры меняются / добавляются со значением> 4096, макс. 65535 - это легче всего рассчитать по блокам IIS * Значение MaxCmds в блоках IIS - или просто макс 65535
  2. DWORD MaxMpxCt в HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Параметры изменяются / добавляются со значением> 50, максимум 65535 - у меня сложилось впечатление, что это согласовывается между клиентом и сервером, нижнее значение которого это то, что применяется. Мы пробовали различные значения до макс.

Я буду продолжать добавлять к этому ответу, когда мы пытаемся / терпим неудачу с различными новыми опциями. Еще одна вещь, которую я должен упомянуть - если у вас есть странные ошибки разрешения пути UNC: «Указанное имя сети больше не доступно или у вас нет разрешения» - временно попробуйте отключить jumbo MTU и любые варианты разгрузки, которые есть у ваших сетевых адаптеров (на обоих IIS и блоки файлового сервера), чтобы увидеть, помогает ли это (это исправило нашу проблему с сетевыми картами HP).

UPDATE: Мы включили SMB 2 на нашем файловом сервере (Linux NAS) и с изменениями реестра, которые мы уже внесли в блок IIS, мы, наконец, перестали получать страшные ошибки ограничения BIOS сети.

1 голос
/ 20 марта 2012

Для справки, следующая статья позволила нам решить проблему: http://blogs.msdn.com/b/carloc/archive/2009/09/06/hosting-on-a-unc-share-is-not-supported-for-the-windows-xp-platform.aspx

Мы установили значение HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode равным "2", что позволило уменьшить нашмультиплексные соединения до управляемого значения.Официальная рекомендация Microsoft состояла в том, чтобы увеличить ограничение мультиплексного соединения в сети SAN, однако для нас это было невыполнимо, так как потребовалось бы отключить все общие ресурсы CIFS, размещенные в сети SAN..

...