【问题标题】:Weird System.IO error after migrating an asp.net 1.1 application to 4.0将 asp.net 1.1 应用程序迁移到 4.0 后出现奇怪的 System.IO 错误
【发布时间】:2011-05-05 09:10:15
【问题描述】:

将 ASP.NET 应用程序迁移到 4.0 后,我收到一个奇怪的 System.IO 错误:System.UnauthorizedAccessException: Access to the path 'xxxx' is denied.

为什么这很奇怪.. 服务器也在运行我的 1.1 应用程序,也托管在 IIS7 上,并且使用完全相同的文件夹(在应用程序之外)。 NETWORK SERVICE 对此文件夹具有写入权限,最重要的是,1.1 应用程序可以正常工作,不会引发异常。

我托管了更多 4.0 网站,但从未遇到过这个问题。

希望有人能帮帮我!

【问题讨论】:

  • 路径是什么?例如到一个 aspx 文件?
  • 1.1应用和4.0是否都运行在同一个应用池中?
  • 检查 IIS 中的应用程序池,运行 4.0 应用程序所在池的帐户是什么?

标签: c# asp.net migration .net


【解决方案1】:

在该文件夹中授予完整的读/写和执行权限...

【讨论】:

  • 这是个坏主意。虽然这可以作为第一个诊断步骤来证明问题出在权限上很有用,但由于它带来的安全风险,不应将其保留或用作解决方案。
  • 用大锤敲碎坚果?
  • 我已授予网络服务完全控制权,但仍然出现同样的错误。这很奇怪!
  • @Jonathan 这表明您的 4.0 站点未在网络服务帐户下运行。
  • 好的,在我的应用程序池的高级设置中,应用程序被设置为使用“ApplicationPoolIdentity”而不是网络服务。谢谢指点!
【解决方案2】:

V4 Web 应用程序是否启用了“AppPool Identity”>

如果是这样,您需要确保应用程序池用户通过应用程序池标识而不是网络服务对资源(应用程序文件夹、数据库等)具有适当的访问权限。

有关分配对应用程序池的访问权限的更多详细信息,请参阅此处。请注意,大多数 GUI 方法仅适用于 Windows 7/Server 2008 R2 for IIS7.5;对于 IIS 7.0 的 Vista/Server 2008,您需要使用命令行。使用 SQL Server,您需要使用 SQL 语句创建映射到应用程序池身份的登录名/用户(创建后,您可以使用 GUI 分配角色/访问权限。

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 1970-01-01
    • 2016-04-26
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2011-01-09
    相关资源
    最近更新 更多