2

ASP.NETプロファイルの実装に問題があります。これは私のプロフィールコードです:コードが実行されると、私は取得またはそれが吹くまで、現在のユーザーのプロファイルを更新するいくつかの理由ASP.NETカスタムプロファイルエラー

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

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構成は次のようになります。しかし、より興味深いのは、FirstNameプロパティとLastNameプロパティが正常に動作することです。エラーは、EmailAddressプロパティとTelephoneNumberプロパティにアクセス/更新する場合にのみ発生します。

FirstName、LastName、EmailAddress、およびTelephoneNumberの各プロパティのweb.configプロファイルセクションに<properties>セクションを追加すると、「プロパティは既に定義されています」というような別のタイプのエラーが表示されます。

これを修正する方法についてのご意見はありますか?また、プロファイルシステムのバックエンドはSQL Azureで、フロントエンドはAzure WCFサービスであることが必要です。

おかげで、

<bleepzter/> 
+2

フィールド名とプロパティ名を一致させてもよろしいですか?メール!= EmailAddress &&電話!= TelephoneNumber –

+0

ありがとうございます。これが答えだったので、これを実際の答えとして書いてください。フィールド名が一致しなければならないと考えたのは誰でしょうか?私は、ProfileBaseが辞書/ハッシュテーブルとしてプロパティを実装していることを意味します。私はそれがセッション/ ViewStateなどに使用されるStateBagに似ていると思った。絶対にどこでも私は内部プロパティキーが一致しなければならないと言うポストを見つけました! Moreso、Commerce ServerのUPMメンバシップ/ロールプロバイダの実装には、プロパティ名と異なるキーがあります。 – bleepzter

+0

@bleeptzer:あなたがこのコメントにあなたにお答えしたように、あなたが彼にメッセージを送るまで、アーロンはあなたのメッセージを取得しません。 –

答えて

3

はあなたがプロパティ名を使用してフィールド名に一致していますか?メール!= EmailAddress & &電話番号= TelephoneNumber

+0

ありがとうございます!私はこの問題を2日間苦労していました!しかし、なぜプロパティ名は基本文字列とまったく同じであるべきですか? – ghazyy