我正在尝试在asp.net 7中运行IIS3.5Web应用程序。
出现以下错误:权限不足,无法读取配置文件
如果我使用本地管理员帐户运行应用程序池,它将正常工作。我正在尝试使其与网络服务帐户一起工作。为此,我将网络服务帐户添加到IIS_IUSRS组,并授予IIS_IUSRS对web应用程序文件夹的读取权限,这些权限也被传播到web.config文件。
你知道哪里出了问题吗?
提前感谢
发布于 2011-07-21 16:41:10
我设法解决了这个问题。
这些文件是“加密的”。在“文件属性”、“常规”选项卡、“高级”中,有一个用于加密文件的复选框,并且该复选框对解决方案中的所有文件都是选中的。即使我们可以在文件系统中正常浏览和打开文件,ASP.NET也无法访问它们。这个解决方案是由一个客户发送的,我不知道它是怎么变成这样的。
提示:如果windows资源管理器以不同的颜色列出你的文件,如绿色,这是一个不正常的标志;)
感谢所有的帮助和想法
发布于 2011-07-20 00:01:47
我认为该帐户至少需要对机器上的applicationhost.config文件(存储在%windir%\system32\inetsrv\config下)具有读取权限。
发布于 2011-07-20 00:27:42
我觉得你应该做几件事。首先,在你的脑海中,把.NET 3.5想象成.NET 2.0,附带一些额外的程序集,这才是它的真实面貌。然后请记住,在IIS7中,我们有一个新的集成管道。因此,您想要的是使用Classic管道运行。接下来,检查您运行时所使用的帐户,并授予该帐户访问您网站文件夹的权限。
如下所示: 1.在IIS Internet服务管理器中,打开它,然后在树控件中的网站列表中选择您的网站。2.单击Actions栏中的Basic Settings,您将看到应用程序池是什么。单击选择按钮,您将看到它显示管道模式和.Net框架版本。您希望它显示>net Framework version2.0(即使您使用的是3.5)和管道模式: Classic。3.如果您没有可用的应用程序池可供选择,则取消并转到左侧树控件中的应用程序池。单击Add Application Pool并添加一个写有“Classing .NET AppPool”的应用程序池(如果还没有的话)。选择您的新应用程序池并编辑其基本设置,将其设置为.net框架版本2.0.50727,并将托管管道模式设置为经典。单击“确定”。4.现在单击高级设置。除非您的所有程序集都是64位的,否则请确保将“启用32位应用程序”设置为TRUE。托管管道模式将显示为Classic。*注意这一部分:* IDENTITY字段告诉您网站在哪个用户帐户下运行,以便您知道使用web.config访问您的网站根目录需要哪些权限。将其设置为"NetworkService“,然后单击OK。5.现在在树形视图中返回到您的网站,再次转到基本设置,并将应用程序池设置为您刚刚设置的经典管道池。6.现在转到你的站点所在的windows文件夹,并将read+execute权限授予“网络服务”。
瞧!好了。
很容易挤柠檬汁。不管怎么说,当你知道怎么做的时候,这是很容易的!
https://stackoverflow.com/questions/6749186
复制相似问题