Почему мое веб-приложение 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" />

добавьте идентификатор пула приложений в группу iis_iusrs сервера.


мне пришлось установить идентификатор пула приложений в NETWORKSERVICE А затем добавьте пользователя, подключающегося к моему веб-сайту (пользователь, которого вы "подключаете как" в настройках IIS под Basic Settings для вашего сайта) в группу IIS_IUSRS


У меня была эта ошибка, когда я установил учетные данные физического пути (в расширенных настройках) в учетную запись моего пула приложений.

в моем случае исправление состояло в том, чтобы сбросить учетные данные физического пути к "пользователю приложения" и исправить мою первоначальную ошибку с помощью ответ, т. е. сбросить анонимную аутентификацию на идентификатор пула приложений, который для этого конкретного сайта был IUSR, пользователь, который не имел доступа к пути приложения (поскольку мы используем определенного пользователя для приложения бассейн тож).


также можно переустановить asp.net, найдите шаги ниже:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
aspnet_iis -i