ASP.NET MVC 3中的ProviderException

时间:2012-02-08 15:06:19

标签: c# asp.net-mvc-3

我有一个传统的ASP.NET WebForms应用程序。我想将它迁移到ASP.NET MVC 3.我的WebForms应用程序的一个核心组件是大量使用自动生成的ProfileCommon实例。不幸的是,ASP.NET MVC 3应用程序中没有该对象。

我使用以下主题中的建议创建了一个ProfileCommon类:Implementing Profile Provider in ASP.NET MVC

我的ProfileCommon类如下所示:

public class ProfileCommon : ProfileBase
{
  public virtual string FirstName
  {
    get { return ((string)(this.GetPropertyValue("FirstName"))); }
    set { this.SetPropertyValue("FirstName", value); }
  }

  public virtual string LastName
  {
    get { return ((int)(this.GetPropertyValue("LastName"))); }
    set { this.SetPropertyValue("LastName", value); }
  }

  public static new ProfileCommon Create(string username) 
  { 
    return ProfileBase.Create(username) as ProfileCommon; 
  }

  public virtual ProfileCommon GetProfile(string username)
  {
    return Create(username) as ProfileCommon;
  }
}

在我的web.config中,我有:

<profile inherits="MyCompany.Namespace1.ProfileCommon" defaultProvider="CustomTableProfileProvider">
  <providers>
    <clear/>
    <add name="CustomTableProfileProvider" type="MyCompany.Namespace2.SqlTableProfileProvider" connectionStringName="MyDatabaseCS" table="MyTable" applicationName="MyApplication" />
  </providers>
</profile>

然后我在我的控制器中的方法中有以下代码,如下所示:

ProfileCommon userProfile = (ProfileCommon)(ProfileCommon.Create(username));
string greeting = "Hello " + userProfile.FirstName;

当执行第二行(问候语)时,我得到一个例外。例外说: System.Configuration.Provider.ProviderException:web.config文件中每个提供程序属性都需要CustomProviderData属性。

我不明白这意味着什么或我需要做什么。我有点困惑,因为前面提到的帖子中的个人说一切正常。但它不适合我。有人可以帮我纠正这个错误吗?

谢谢!

0 个答案:

没有答案