2011-07-19 100 views
1

我试图在IIS 7ASP.NET IIS7问题

它提供了以下错误运行一个asp.net 3.5 Web应用程序: 无法读取配置文件,由于权限不足

如果我使用本地管理员帐户运行应用程序池,它可以工作。我试图使它与网络服务帐户一起工作。为此,我将网络服务帐户添加到IIS_IUSRS组,并为Web应用程序文件夹上的IIS_IUSRS提供了读取权限,这些文件也被传播到web.config文件。

任何想法可能是错的?

在此先感谢

+0

你给网络服务帐户写Web应用程序文件夹上的IIS_IUSRS权限?它只是读吗? – Pinchy

+0

即使使用完全控制,也不起作用:( – Dante

+0

直接将网络服务完全控制权交给项目文件夹也不能达到预期的效果如果通过组不起作用,我不会期望它 – Dante

回答

1

我设法解决了这个问题。

这些文件被“加密”。在文件属性常规选项卡高级中,有一个复选框来加密文件,并检查解决方案中的所有文件。 尽管我们可以在文件系统中正常浏览和打开文件,但ASP.NET无法访问它们。 这个解决方案是由客户发送的,我不确定它是怎么得到的。

提示:如果Windows资源管理器中列出了不同的颜色你的文件,如绿色,这是一个标志的东西是不正常的;)

感谢所有帮助和建议

+0

感谢您添加您的解决方案:) – leppie

0

我相信帐户至少需要读取权限在机器上的applicationhost.config文件(这是在%WINDIR存储%\ SYSTEM32 \ INETSRV \ config中。

+0

不起作用。 Thx为小费。 – Dante

0

有一对夫妇的我认为你应该做的事情首先,在.NET 3.5中考虑.NET 2.0的情况,并在其中加入一些额外的程序集,然后记住在IIS7中我们有一个新的集成管道。所以,你想要的是使用Classic管道运行。接下来,检查你运行的帐户是什么,并将该帐户访问到你的网站文件夹。

以下是如何操作: 1.在IIS Internet服务管理器中,将其打开并在树控件中的网站列表中选择您的网站。 2.单击操作栏中的基本设置,您将看到应用程序池是什么。点击SELECT按钮,你会看到它说管道模式和.Net框架版本。你希望它说> NET框架2.0版(即使你在3.5)和管道模式:经典。 3.如果您没有可供选择的应用程序池,请取消并转至左侧树形控件中的“应用程序池”。点击添加应用程序池,添加一个名为“Classing .NET AppPool”的应用程序池,选择新的应用程序池并编辑其基本设置,将其设置为.net framework版本2.0.50727,并将管道管道模式设置为Classic。点击确定 4.现在点击高级设置,除非你所有的程序集都是64位,否则确保启用32位应用程序设置为TRUE管理流水线模式将会显示为经典。* 注意此部分:* The IDENTITY字段告诉你该网站运行的是哪个用户帐户,以便你知道什么需要访问Web.config根目录的权限。将其设置为“NetworkService”并单击OK。 5.现在回到您的网站在树形视图中,再次转到基本设置,并将应用程序池设置为您刚刚设置的Classic管道。 6.现在转到Windows窗口您的网站位于何处,并为“网络服务”授予读取权限和执行权限。

瞧!完成。

容易peasy柠檬squeezy。无论如何,这很容易!

+0

不起作用。我已经有了配置,除了管道模式。在Classic或Integrated之间切换没有区别。尽管如此,感谢您的回复;) – Dante

+0

您是否尝试授予该文件夹的EVERYONE权限并查看是否解决了该问题?然后,您可以将其删除,但您已确认是否存在安全问题。 – DavidJBerman

+0

我做了,仍然没有工作。 – Dante