2

我对 ASP.NET 配置文件实现有疑问。这是我的个人资料代码:

public class UserProfile: ProfileBase
{
    public static void Get()
    {
        return (UserProfile)Create(Membership.GetUser().UserName);   
    }
    public static void Get(string username)
    {
        return (UserProfile)Create(username);
    }

    //this property works
    [SettingsAllowAnonymous(false)]
    public string FirstName
    {
        get{ return base.GetProperty("FirstName") as String; }
        set{ base.SetPropertyValue("FirstName", value); }
    }

    //this property works
    [SettingsAllowAnonymous(false)]
    public string LastName
    {
        get{ return base.GetProperty("LastName") as String; }
        set{ base.SetPropertyValue("LastName", value); }
    }

    //this property throws "The settings property 'Email' was not found." error.
    [SettingsAllowAnonymous(false)]
    public string EmailAddress
    {
        get{ return base.GetProperty("Email") as String; }
        set{ base.SetPropertyValue("Email", value); }
    }

    //this property throws "The settings property 'Telephone' was not found." error.
    [SettingsAllowAnonymous(false)]
    public string TelephoneNumber
    {
        get{ return base.GetProperty("Telephone") as String; }
        set{ base.SetPropertyValue("Telephone", value); }
    }
}

我的网络配置如下所示:

<profile inherits="UserProfile" defaultProvider="SqlProfileProvider">
    <providers>
        <add 
            name="SqlProfileProvider" 
            type="System.Web.Profile.SqlProfileProvider"
            connectionStringName="Profile" 
            applicationName="Management" />
    </providers>
</profile>

由于某种原因,当代码执行并且我检索或更新当前用户的配置文件时,它会爆炸。但是,更奇怪的是 FirstName 和 LastName 属性可以正常工作。只有在访问/更新 EmailAddress 和 TelephoneNumber 属性时才会出现错误。

如果我<properties>在 web.config 配置文件部分中为 FirstName、LastName、EmailAddress 和 TelephoneNumber 属性添加该部分,则会显示不同类型的错误 - “属性已定义”或类似的内容......

有想法该怎么解决这个吗?您还需要知道配置文件系统的后端是 SQL Azure,而前端是 Azure WCF 服务。

谢谢,

<bleepzter/>
4

1 回答 1

3

您确定将字段名称与属性名称匹配吗?电子邮件 != 电子邮件地址 && 电话 != 电话号码

于 2011-01-31T19:00:44.783 回答