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