В течение последних нескольких месяцев работы над моим проектом MVC3 я получаю ошибку запрета произвольного доступа при просмотре бритвы. В большинстве случаев я не внес ни одного изменения в представление, а в последнем случае проект MVC тоже не изменился.
Приложение mvc размещено в Azure, и ошибки запрещенного доступа возникают только при запуске в наборе dev. Если бы я должен был опубликовать в облаке, доступ к страницам.
У меня нет шагов для воспроизведения этого. И единственный способ исправить это, как только это произойдет, - выполнить следующие шаги:
- Скопируйте разметку с соответствующей страницы.
- Удалить файл
- Создать новый вид с немного другим именем
- Вставить разметку в новый файл
- Перестройка
- Переименовать файл в старое имя
Я просматривал диспетчер IIS, когда сайт работает, и кажется, что уязвимый файл существует и имеет те же разрешения, что и другие незатронутые файлы.
Что дает?
ОБНОВЛЕНИЕ: Я только что столкнулся с этой же проблемой со службой WCF (.svc) в том же решении (хотя проект отличается от проекта MVC). На этот раз трюк с воссозданием файла не сработал. Я проверил код из Subversion в новый рабочий каталог, и теперь он снова работает. Это должно быть что-то с IIS или Azure Compute Emulator.
Исключение выглядит следующим образом ...
System.UnauthorizedAccessException: доступ к пути
'C: \ Users \ Brett \ App \ Working \ Ствол \ Project.Web \ Views \ Задания \ _Assignment.cshtml'
отказано.
Генерировано: Пн, 09 Янв 2012 20:55:00 GMT
System.UnauthorizedAccessException: доступ к пути
'C: \ Users \ Brett \ App \ Working \ Ствол \ Project.Web \ Views \ Задания \ _Assignment.cshtml'
отказано. в System.IO .__ Error.WinIOError (Int32 errorCode, String
MaybeFullPath) в System.IO.FileStream.Init (String path, FileMode
режим, доступ к FileAccess, права Int32, логическое использование прав, FileShare
поделиться, Int32 bufferSize, опции FileOptions, SECURITY_ATTRIBUTES
secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
в System.IO.FileStream..ctor (Строковый путь, режим FileMode, FileAccess
доступ, общий доступ к FileShare, размер буфера Int32, параметры FileOptions, строка
msgPath, логическое bFromProxy) в System.IO.FileStream..ctor (String
путь, режим FileMode, доступ к FileAccess, общий доступ к FileShare) в
System.Web.Hosting.MapPathBasedVirtualFile.Open () в
System.Web.Compilation.BuildProvider.OpenReader (VirtualPath
virtualPath) в
System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode ()
в System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType ()
в
System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider (BuildProvider
BuildProvider)
Я обрезал трассировку стека, она была довольно большой. Если кто-то хочет отдыха, я могу предоставить это.