MVC 3子网站?

时间:2011-12-12 18:15:18

标签: asp.net-mvc-3 iis-7

我有一个非常基本的网站可以自行运行但是当我创建网站的副本并尝试将其添加到子域(然后将其转换为应用程序)时,我尝试任何一个时出错控制器顶部设置如下:

public class AccountController : Controller
{

    // This constructor is used by the MVC framework to instantiate the controller using
    // the default forms authentication and membership providers.
    private CustomMembershipDB datacontext;
    public AccountController()
        : this(null, null)
    {
        datacontext = new CustomMembershipDB();
    }
    // This constructor is not used by the MVC framework but is instead provided for ease
    // of unit testing this type. See the comments at the end of this file for more
    // information.
    public AccountController(IFormsAuthentication formsAuth, IMembershipService service)
    {
        FormsAuth = formsAuth ?? new FormsAuthenticationService();
        MembershipService = service ?? new AccountMembershipService();
    }

    public IFormsAuthentication FormsAuth
    {
        get;
        private set;
    }

    public IMembershipService MembershipService
    {
        get;
        private set;
    } 

我得到错误:

描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

分析程序错误消息:已添加条目“EFMembershipProvider”。

IIS似乎在抱怨在同一个域上设置了重复的成员资格提供程序,并且不确定只是重命名它会解决这个问题吗?任何想法都赞赏我,因为我是一个新手,这是在我之上!

1 个答案:

答案 0 :(得分:1)

我认为你的“子网站”是第一个的虚拟目录。 Root的Web.config设置将继承到虚拟目录。

这意味着默认情况下,您的子网站会获取您的顶级网站中声明的所有提供商。

要防止出现这种情况,您可以在主inheritInChildApplications=false上使用此directive Web.config,或者只是避免(重新)声明子网站中的EFMembershipProvider