Мой системный администратор сходит с ума :-) Не работает ли ASP.NET MVC, когда физический путь сервера находится в формате UNC? - PullRequest
4 голосов
/ 04 июня 2010

Я пытаюсь заставить свою компанию перейти на ASP.NET MVC и отказаться от классического ASP.Я написал несколько примеров приложений в качестве проверки концепции, но теперь у меня возникают проблемы, когда я пытаюсь развернуть эти приложения mvc на сервере IIS7 моей компании.

Мой системный администратор говорит, что в ASP.NET MVC есть что-то, что мешает ему указать путь UNC, указанный в качестве физического пути сервера к папке сайта.Это звучит смешно для меня, потому что (насколько мне известно) MVC Framework не оказывает никакого влияния на этот параметр ... и не код, который я пишу.

Суть заключается в следующем: если какой-либо из моих MVCприложения должны использоваться для клиентов, они должны запускаться на сервере по физическому пути UNC.В настоящее время приложения mvc будут работать, когда у сервера нет пути UNC ... только не с путем UNC.

  1. Я ошибаюсь, сообщая системному администратору, что это не MVC, который отбрасываетего пути UNC?
  2. Есть ли у вас ресурс, который вы, ребята, знаете, который я могу использовать для исследования этой проблемы?

Правки:

Ошибка, которая появляется в браузере, говорит:

Исключение безопасности

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

И трассировка стека показала:

[SecurityException: Запрос на разрешение типа 'System.Web.AspNetHostingPermission, System, Version = 2.0.0.0, Culture =нейтральный, PublicKeyToken = b77a5c561934e089 'не удалось.]

System.Reflection.Assembly._GetType (имя строки, логическое значение throwOnError, логическое игнорирование) + 0

System.Reflection.Assembly.GetTy ((, Boolean throwOnError, Boolean ignoreCase) + 42

System.Web.UI.Util.GetTypeFromAssemblies (сборки ICollection, String typeName, логическое ignoreCase) + 145

System.Web.UI.TemplateParser.GetType (String typeName, Boolean ignoreCase, Boolean throwOnError) + 73

System.Web.UI.TemplateParser.ProcessInheritsAttribute (String baseTypeName, String codeFileBaseTypeName, String src * 10 *, сборка сборки 10) * 111 + 111.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes (IDictionary parseData) + 279

Ответы [ 2 ]

4 голосов
/ 04 июня 2010

.NET нужна дополнительная помощь для работы по UNC-путям. Обычно это происходит из-за того, что вы не «доверяете» удаленному компьютеру. Вот статья в КБ, описывающая одну такую ​​ошибку в IIS.

MS KB статья

Выполните поиск в Google по путям IIS .NET UNC. Вы можете найти больше, чем кто-либо из нас мог бы написать об этом, если вам нужно изменить конфигурации, почему вы должны установить разрешения и т. Д. Нет, вы не ошиблись в MVC, путающем пути, это .NET в целом, что нужна помощь с путями. Поскольку вы используете классический ASP (на основе сценариев), вы не столкнулись ни с одной из этих проблем.

0 голосов
/ 04 июня 2010

Ну, я не слишком уверен, но я знаю, что asp.net нужен правильный UNC-путь (не \ what \ C $, а \ what \ share) при использовании таких функций, как file.exist. Как всегда, вы должны убедиться, что ваша учетная запись рабочего процесса имеет надлежащий доступ для чтения / записи по указанному пути. Наконец, вы должны использовать некоторые общие способы устранения неполадок, чтобы убедиться, что это не только приложение mvc, которое имеет проблемы.

И последнее, не используйте MapPath. Возвращает абсолютный адрес, если ему дан относительный адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...