具有多个web.configs的Web应用程序

时间:2013-01-26 19:20:44

标签: c# asp.net visual-studio-2008

我正在开发一个Web应用程序,它在Web项目中有几个文件夹及其页面。还有一个web.config将所有传统标记。我需要创建另一个名为“customerportal”的文件夹,在此文件夹中我创建了3个页面,customerlogin.aspxcustomerdefault.aspxcustomerhelp.aspx。我还在该文件夹中添加了3个文件夹,图像,CSS和脚本。

现在当我导航到该文件夹​​时说http://mysite.com/customerportal/customerlogin.aspx,它运行正常。我添加了一个web.config文件,因为现在我需要将此文件夹仅限制为客户角色,同样我需要将主应用程序(父)限制为客户角色。因此,没有客户无法进入客户门户,也没有客户门户用户可以进入主应用页面。所以我添加了限制孩子web.config.中角色的标记,这不起作用,因为它告诉我

    Parser Error Message: It is an error to use a section registered as
allowDefinition='MachineToApplication' beyond application level.  
This error can be caused by a virtual directory not being 
configured as an application in IIS.

因此,我将文件夹转换为虚拟目录,然后转换为iis中的应用程序。然后错误消失但我遇到了其他问题,例如主要web.config被继承到子web.config的事情。所以我开始调查,我看到很多答案,如:

<location path="." inheritInChildApplications="false">部分之前放置<system.web>,我试过了,但现在我在<membership>标记上收到了错误消息。成员资格在不同的aspmembership数据库中,因此孩子有不同的连接字符串等。但是我无法做像

这样的事情。
<membership>
  <clear />

<membership> <remove name=..>

它的成员资格仍然以某种方式继承。解决这个子web.config问题的最佳方法是什么?在子文件夹需要自己的web.config时进行这种设置的最佳方法是什么?这是我第一次这样做。

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你不能只在root web.config中添加授权并给出路径“〜/ customerportal / customerlogin.aspx”等等吗?我认为因为你有一个web.config,它认为该目录是它自己的应用程序。