У меня была та же проблема, и ни одно из вышеперечисленных не решило нашу проблему - мы временно восстановили службу, изменив настройку, под которой работал каждый сайт пула приложений - вы можете сделать это, зайдя в пулы приложений -> вкладка idenity и и изменение пользователя с сетевой службы на локального пользователя - пока мы выяснили, в чем проблема (это не рекомендуется, поэтому, если вы решите это сделать, убедитесь, что понимаете последствия)
Затем мы нашли ссылку о сопоставлениях Temp \ TMP и о том, как их исправить - что не было нашей проблемой
На другом сайте (и, как описано в других ответах), мы использовали Path.GetTempPath()
, чтобы увидеть, что на самом деле ищет CLR, оказалось
C: \ WINDOWS \ system32 \ Config \ systemprofile \ Local
Настройки \ папка Temp
Затем мы использовали Process Monitor , чтобы убедиться, что это действительно правильно, когда мы изменили разрешение для этой папки, оно работало правильно. Мы по-прежнему не уверены, почему CLR решили прекратить использование временного каталога по умолчанию, но мы нашли ссылку на то, как он принимает это решение. Как выбирается GetTempPath .
Обновление: наконец-то мы выяснили, как изменилась переменная PATH для временной папки, когда кто-то решил повторить ошибку! Проблема заключалась в том, что CLR Profiler кто-то решил запустить вживую, что меняет все разрешения временного каталога, так что если вы еще этого не знали, я бы не рекомендуется запускать его на сервере Prod.