2009-02-20 2 views
4

Что я хочу достичь просто:Создание виртуального приложения/каталога в физической папке на IIS/ASP.NET

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

Обратите внимание, что «мой сайт» является пустой сайт с кучей папок в нем, «Foo», «Бар», «Баз» и т.д.

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

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. 

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

ответ

7

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

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

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

+0

Я очень сомневаюсь, что это все? Учитывая, что он ищет файл, который не существует (и не должен)? – thr

+1

Я был так неправ, отлично - исправил это. – thr

0

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

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

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

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

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

Смежные вопросы