Создание виртуального приложения / каталога в физической папке на IIS / ASP.NET - PullRequest
4 голосов
/ 20 февраля 2009

То, чего я хочу достичь, просто:

  • У меня есть веб-сайт, скажите «мой сайт» - http://localhost
  • На этом сайте у меня есть (физическая) папка "foo" - http://localhost/foo
  • Внутри папки "foo" я хочу иметь виртуальный каталог (приложение?) С именем «upload», поэтому URL становится http://localhost/foo/upload

Обратите внимание, что "my-site" - это пустой веб-сайт с кучей папок в нем, "foo", "bar", "baz" и т. Д.

Поэтому, когда я щелкаю правой кнопкой мыши на «foo» и выбираю «Создать> виртуальный каталог» и добавляю свое приложение, которое я написал в VS.NET, а затем пытаюсь перейти к http://localhost/foo/upload, я получаю эту ошибку: 1021 *

Parser Error Message: An error occurred loading a configuration file: Failed to 
start monitoring changes to 'C:\InetPub\my-site\foo\web.config' 
because access is denied.

Дело в том, что нет веб-конфигурации. в папке "foo", и не должно, так как это только обычная папка на сайте. Если я добавлю виртуальный каталог на верхнем уровне, скажем, http://localhost/foo_upload,, все будет работать как надо ... и что я здесь не так делаю?

Ответы [ 2 ]

7 голосов
/ 20 февраля 2009

Похоже, проблема с правами доступа в вашей системе - для учетной записи .NET пользовательский контекст, в котором работает ASP.NET, требует доступа к вашему сайту.

В системах вплоть до Windows Server 2000 этот пользователь представлял собой локальную учетную запись, называемую просто ASPNET, после чего она заменяется одной из учетных записей NT_AUTHORITY - самый простой способ найти это - предоставить группе IIS WPG (локальной группе) доступ к аккаунту.

MS предоставляет инструкции по адресу http://support.microsoft.com/kb/316721/,. Используйте вышеперечисленное, чтобы определить, к какой учетной записи пользователя вы должны проверить доступ.

0 голосов
/ 02 августа 2010

Я просто отвечаю за того, у кого такая же проблема, и нашел эту тему.

Я добавил разрешение всем (в этом случае оно будет в папке C:\InetPub\my-site\foo\). Затем я напечатал на странице, какой пользователь выполняет приложение в этой папке ...

Что-то вроде:

labelCurrentUser.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

Затем я удалил разрешение всем и добавил полученного пользователя.

...