4 Stimmen

Nicht in der Lage, ein Objekt vom Typ 'System.Web.Profile.DefaultProfile' in den Typ 'ProfileCommon' umzuwandeln.

Ich sehe diesen Fehler:

Unfähig, ein Objekt vom Typ 'System.Web.Profile.DefaultProfile' in den Typ 'ProfileCommon' umzuwandeln.

auf folgendem Code:

ProfileCommon p = (ProfileCommon)ProfileCommon.Create(TextUsername.Text, true);

Ich bin mir nicht sicher, warum...

3voto

santosh singh Punkte 26504

Stimme dem ChrisKent zu. Es sieht aus wie ein Problem in der web.config

Überprüfen Sie das folgende Beispiel für, wie man das ProfileCommon-Objekt in asp.net erhält

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="GetProfile" %>

    Untitled Page

        Benutzername:

Datei: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class GetProfile : System.Web.UI.Page
{
  protected void cmdGet_Click(object sender, EventArgs e)
  {
    ProfileCommon profile = Profile.GetProfile(txtUserName.Text);
        if (profile.LastUpdatedDate == DateTime.MinValue)
        {
            lbl.Text = "Kein Benutzer gefunden.";
        }
        else
        {
            lbl.Text = "Dieser Benutzer lebt in " + profile.FirstName;
        }
  }
}

Datei: Web.config

BEARBEITEN

Dieses Beispiel funktioniert nur, wenn der Projekttyp eine Website ist. Wenn Sie das ProfileCommon-Objekt in einer Webanwendung verwenden möchten, gehen Sie über folgenden Link

Konvertierung des Profile Object Codes

BEARBEITEN -II

Gemäß Ihres Kommentars könnte Ihnen der folgende Link helfen

ASP.NET Profile in Webanwendungsprojekten

1voto

theChrisKent Punkte 14951

Überprüfen Sie Ihre web.config, wenn kein -Abschnitt definiert ist, erstellt ASP.NET ein Profilobjekt vom Typ DefaultProfile, was Ihren Fehler verursachen kann.

Das oben Gesagte gilt nur für Web Sites und nicht für Web Applications. Da Sie angegeben haben, dass Sie eine Web Application verwenden, sollten Sie wissen:

  • Visual Studio generiert KEINE ProfileCommon-Objekte für Web Applications
  • Sie müssen auf Ihre Profilinformationen zugreifen, indem Sie ProfileBase.GetPropertyValue(PropertyName) verwenden

Sie können also eine Eigenschaft wie folgt abrufen (Beispiel aus dem folgenden Artikel):

DateTime DOB = Convert.ToDateTime(HttpContext.Current.Profile.GetPropertyValue("DateOfBirth"));

Weitere Informationen/Beispiele finden Sie in diesem Artikel: http://weblogs.asp.net/anasghanem/archive/2008/04/12/the-differences-in-profile-between-web-application-projects-wap-and-website.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X