Почему мое веб-приложение ASP пытается написать C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET файлы?
Я сталкиваюсь с проблемами при развертывании веб-приложения ASP в HostMySite. Приложение ранее было развернуто на своих серверах, которые находятся на разных платформах без проблем. Однако для текущего домена и сервера я продолжаю получать ошибку сервера ниже.
ошибка сервера в приложении/PropertyManagement'. Текущий идентификатор (ADSAFESECUREWEBC116018-fhmonlinea) не имеет доступа на запись "C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET файлы. Описание: необработанное исключение при выполнении текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительных сведений об ошибке и где было задано в коде.
Сведения Об Исключении: System.Сеть.HttpException: текущий идентификатор (ADSAFESECUREWEBC116018-fhmonlinea) не имеет доступа на запись к 'C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Папки.'
Ошибка Источник:
необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно определить, используя следующую трассировку стека исключений. Я знаю, что код явно не пытается писать во временный каталог .NET, но мне было интересно, использует ли приложение этот каталог во время выполнения. Хост продолжает говорить мне, что я должен настроить свой приложение не использовать временный каталог, так как они не будут предоставлять доступ для чтения/записи к нему. Может ли кто-нибудь сказать мне, почему мое приложение может пытаться использовать этот каталог и что я могу сделать, чтобы настроить его на использование другого каталога, к которому у меня есть доступ. Я новичок в разработке ASP и нуждаюсь в помощи. Спасибо!
Трассировка Стека:
[HttpException (0x80004005): текущий идентификатор (ADSAFESECUREWEBC116018-fhmonlinea) не имеет доступа на запись "C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET файлы.] Система.Сеть.Строки httpruntime.SetUpCodegenDirectory (CompilationSection compilationSection) +11650831 Система.Сеть.Строки httpruntime.HostingInit(HostingEnvironmentFlags hostingFlags, политического уровня, связанных с политического уровня, связанных с исключением appDomainCreationException) +323
[HttpException (0x80004005): текущий идентификатор (ADSAFESECUREWEBC116018-fhmonlinea) не имеет доступа на запись "C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET файлы.] Система.Сеть.Строки httpruntime.FirstRequestInit (HttpContext context) +11612256 Система.Сеть.Строки httpruntime.EnsureFirstRequestInit (HttpContext context) +141 Система.Сеть.Строки httpruntime.ProcessRequestNotificationPrivate (iis7workerrequest wr, HttpContext context) +4842149
сведения о версии: Microsoft .NET Framework версия: 4.0.30319; ASP.NET версия: 4.0.30319.1
5 ответов
среда CLR копирует все сборки в этот каталог и компилирует их .аспн/.asmx / etc файлы и помещает скомпилированную версию во временную ASP.NET файлы.
Это должно быть доступно для записи, чтобы ваш сайт мог быть скомпилирован во время выполнения.
Edit: вот статья MSDN объясняя это.
Как уже обсуждалось в комментариях, если поставщик отказывается позволить вам писать в этот каталог, вы можете переопределить его в web.config
, - система.раздел веб':
<compilation tempDirectory="c:\path\to\directory\you\can\write" />
мне пришлось установить идентификатор пула приложений в NETWORKSERVICE
А затем добавьте пользователя, подключающегося к моему веб-сайту (пользователь, которого вы "подключаете как" в настройках IIS под Basic Settings
для вашего сайта) в группу IIS_IUSRS
У меня была эта ошибка, когда я установил учетные данные физического пути (в расширенных настройках) в учетную запись моего пула приложений.
в моем случае исправление состояло в том, чтобы сбросить учетные данные физического пути к "пользователю приложения" и исправить мою первоначальную ошибку с помощью ответ, т. е. сбросить анонимную аутентификацию на идентификатор пула приложений, который для этого конкретного сайта был IUSR, пользователь, который не имел доступа к пути приложения (поскольку мы используем определенного пользователя для приложения бассейн тож).
также можно переустановить asp.net, найдите шаги ниже:
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
aspnet_iis -i