首页 文章

为什么我的 ASP Web 应用程序试图写入 C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files?

提问于
浏览
8

我在向 HostMySite 部署 ASP Web 应用程序时遇到问题。该应用程序以前已部署到位于不同平台上的服务器,没有任何问题。但是,对于当前域和服务器,我继续在下面收到服务器错误。

'/PropertyManagement'应用程序中的服务器错误。当前标识(ADSAFESECUREWEBC116018-fhmonlinea)没有对“C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写入权限。描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Web.HttpException:当前标识(ADSAFESECUREWEBC116018-fhmonlinea)没有对“C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写入权限。

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。我知道代码没有明确地尝试写入.NET 临时目录,但我想知道应用程序是否在 run-time 期间以某种方式使用该目录。主机一直告诉我,我必须将我的应用程序配置为不使用临时目录,因为它们不会提供 read/write 访问权限。有人可以告诉我为什么我的应用程序可能正在尝试使用此目录以及我可以做什么来配置它以使用我有权访问的其他目录。我是 ASP 开发的新手,需要帮助。谢谢!

堆栈跟踪:

[1] System.Web.HttpRuntime.SetUpCodegenDirectory(CompilationSection compilationSection)11650831 System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags,PolicyLevel policyLevel,Exception appDomainCreationException)323

[2] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)11612256 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)4842149

版本信息:Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

5 回答

  • 23

    CLR 将所有程序集复制到该目录并编译.aspx/.asmx/etc 文件,并将编译后的版本放入 Temporary ASP.NET Files 中。

    这必须是可写的,以便您的站点可以在运行时编译。

    编辑:这是一篇 MSDN 文章解释它。

    正如评论中所讨论的,如果提供程序拒绝让您写入该目录,则可以通过将以下内容放在web.config,'system.web'部分中来覆盖它:

    <compilation tempDirectory="c:\path\to\directory\you\can\write" />
    
  • 8

    将应用程序池的标识添加到服务器的 IIS_IUSRS 组。

  • 1

    我必须将应用程序池标识设置为 NETWORKSERVICE,然后将连接到我的网站的用户(您在'Basic Settings下的 IIS 设置中'连接的用户)添加到 IIS_IUSRS 组

  • 1

    我将物理路径凭据(在高级设置中)设置为我的应用程序池帐户时出现此错误。

    在我的情况下,修复是将物理路径凭据重置为“应用程序用户”,并使用这个答案,i.e 修复我的原始错误。将匿名身份验证重置为应用程序池标识,对于此特定站点是 IUSR,用户无权访问应用程序路径(因为我们使用特定用户作为应用程序池标识)。

  • 0

    也可以重新安装 asp.net,从下面找到以下步骤:

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

相关问题