2

我有一個ASP.NET配置文件實現的問題。這是我的個人資料代碼: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); } 
    } 
} 

我的web配置是這樣的:

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

出於某種原因,當代碼執行和我檢索或更新它吹了當前用戶的配置文件。然而,更好奇的是FirstName和LastName屬性工作正常。只有在訪問/更新EmailAddress和TelephoneNumber屬性時纔會出現錯誤。

如果我在名稱,姓氏,EmailAddress和TelephoneNumber屬性的web.config配置文件部分中添加<properties>部分,會顯示不同類型的錯誤 - 「屬性已被定義」或沿着行...

有關如何解決此問題的任何想法?此外,您需要知道配置文件系統的後端是SQL Azure,而前端是Azure WCF服務。

感謝,

<bleepzter/> 
+2

您確定您的字段名稱與屬性名稱匹配嗎?電子郵件!= EmailAddress &&電話!=電話號碼 – 2011-01-29 00:02:45

+0

謝謝。請將此作爲實際答案寫下,因爲這是答案。誰會想到,字段名稱必須匹配?我的意思是ProfileBase將屬性實現爲字典/散列表。我認爲它與用於Session/ViewState的StateBag類似。絕對沒有我找到一篇文章,指出內部屬性鍵必須匹配!此外,用於Commerce Server的UPM成員/角色提供者的實現具有與其屬性名稱不同的鍵。 – bleepzter 2011-01-29 00:51:40

回答

3

你確定你與屬性名相匹配的字段名?電子郵件!=電子郵件地址& &電話!=電話號碼