ASP.NET IIS7问题

时间:2011-07-19 14:50:34

标签: asp.net iis-7 web-config

我正在尝试在IIS 7中运行asp.net 3.5 Web应用程序。

它给出以下错误: 由于权限不足,无法读取配置文件

如果我使用本地管理员帐户运行应用程序池,则可以正常运行。我正在尝试使用网络服务帐户。为此,我将网络服务帐户添加到IIS_IUSRS组,并为Web应用程序文件夹中的IIS_IUSRS提供了读取权限,这些权限也传播到web.config文件。

关于可能出错的任何想法?

提前致谢

3 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。

文件已“加密”。在“文件属性”的“常规”选项卡“高级”中,有一个用于加密文件的复选框,并检查了解决方案中的所有文件。 即使我们可以在文件系统中正常浏览和打开文件,ASP.NET也无法访问它们。 这个解决方案是由客户发送的,我不确定它是怎么回事。

提示:如果Windows资源管理器以不同的颜色(如绿色)列出您的文件,则表示某些内容不正常;)

感谢所有帮助和想法

答案 1 :(得分:0)

我认为该帐户至少需要对计算机上applicationhost.config文件的读取权限(存储在%windir%\ system32 \ inetsrv \ config下。

答案 2 :(得分:0)

我认为你应该做几件事。首先,在脑海中考虑.NET 3.5作为.NET 2.0,侧面有一些额外的程序集,这就是它的真实含义。然后记住在IIS7中我们有一个新的集成管道。所以,你想要的是使用Classic管道运行。接下来,检查您正在运行的帐户,并授予该帐户访问您的网站文件夹的权限。

以下是: 1.在IIS Internet服务管理器中,打开它并在树控件的网站列表中选择您的网站。 2.单击操作栏中的“基本设置”,您将看到应用程序池的内容。单击SELECT按钮,您将看到它显示管道模式和.Net框架版本。您希望它说> net Framework Version 2.0(即使您使用的是3.5)和管道模式:Classic。 3.如果您没有可供选择的应用程序池,则取消并转到左侧树控件中的“应用程序池”。单击“添加应用程序池”并添加一个“分类.NET AppPool”(如果尚未存在)。选择新的应用程序池并编辑其基本设置,将其设置为.net framework版本2.0.50727,并将管理管道模式设置为Classic。点击确定。 4.现在单击高级设置。除非所有程序集都是64位,否则请确保启用32位应用程序设置为TRUE。管理管道模式将说经典。 * 请注意本部分:* IDENTITY字段告诉您网站运行的用户帐户,以便您知道需要使用web.config访问网站根目录的权限。将其设置为“NetworkService”,然后单击“确定”。 5.现在,在树状视图中返回到您的网站,再次转到“基本设置”,并将应用程序池设置为您刚刚设置的经典管道。 6.现在转到您网站所在的Windows文件夹,并为“NETWORK SERVICE”提供读取+执行权限。

瞧!完成。

易腻的柠檬挤压。当你知道怎么做时很容易!