Laden...

Fehlende Objektinstanz nach Veröffentlichung

Erstellt von Maximus vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.087 Views
M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 16 Jahren
Fehlende Objektinstanz nach Veröffentlichung

Hallo,

ich habe auf dem lokalen PC ein Projekt feriggestellt und möchte dies nun auf den IIS7 Webserver laufen lassen.
Die Datenbank läuft schon auf dem Webserver, mittels aspnet_regsql wurden alle Tabellen angelegt.
Der Zugriff vom lokalen PC auf die Datenbank des Servers funktioniert.

Mittels "Website veröffentlichen" habe ich die Seite mit den Standard-Vorgaben in ein Verzeichnis auf dem lokalen PC veröffentlicht und von Hand in das entsprechende Verzeichnis auf dem Webserver kopiert.

Wenn ich nun auf das Projekt auf dem Webserver zugreife, kommt die Anmeldeseite auf der man sich einloggen muss. Klicke ich da auf ok, kommt die folgende Fehlermeldung:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. 
Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde. 

Ausnahmedetails: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Quellfehler: 

Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.  

Stapelüberwachung: 


[NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]
   MasterPage.Page_Load(Object sender, EventArgs e) +91
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

Ich gehe davon aus, dass der Fehler irgendetwas mit den Rollen zutun hat, denn auf der Masterpage werden je nach Rolle des Users verschiedene Menüpunkte mittels LoginView angezeigt.

Kann mir jemand sagen, was ich vergessen bzw. falsch gemacht habe?

Danke für Eure Hilfe.
Gruß
Maximus.

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

4.506 Beiträge seit 2004
vor 16 Jahren

Hallo Maximus,

ASP.NET Anwendungen lassen sich mittels VS sehr gut debuggen. Ich würde vorschlagen, dass Du mal in der ersten Anweisungszeile in "MasterPage.Page_Load" einen Breakpoint setzt.

Dann kannst Du (denke ich) sehr schnell feststellen was für eine fehlende Objektinstanz Du hast (irgendein Objekt ist null, aber Du greifst auf Methoden oder Properties zu).

Viele Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 16 Jahren

Hi,

kann ich gerne machen, wenn Du mir sagst, wie das mit VS2005 geht.
Habe so etwas noch nie gemacht.

Aber trotzdem ist es merkwürdig, dass die Website auf dem lokalen Server läuft und auf dem Webserver nicht.
Ich poste hier nochmal die Masterpage.Load:


    protected void Page_Load(object sender, EventArgs e)
    {
        //Aktuelle Uhrzeit ermitteln und eintragen
        Label lUhrzeit = (Label)lvAnmeldung.FindControl("lUhrzeit");
        lUhrzeit.Text = DateTime.Now.ToLongTimeString();
        //Aktuelles Datum ermitteln und eintragen
        Label lDatum = (Label) lvAnmeldung.FindControl("lDatum");
        lDatum.Text = DateTime.Now.ToShortDateString();
    }

Wenn ich den kompletten Inhalt der Page_Load weglasse kommt die Fehlermeldung nicht mehr, allerdings auch nicht LoginView was eigentlich kommen sollte:


<body bgcolor="#ffffcc" runat="server">
    <form id="form1" runat="server">
        <div id="centerBox" style="overflow: auto">
                <asp:LoginView ID="lvAnmeldung" runat="server">
                            <RoleGroups>
                                <asp:RoleGroup Roles="Administrator">
                                       .......................
                                </asp:RoleGroup>
                                <asp:RoleGroup Roles="Mitglied">
                                       .......................
                                </asp:RoleGroup>
........
                                   

Hast noch jemand eine Idee was ich machen kann?

Gruß
Maximus.

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 16 Jahren

Hallo,

das Problem habe ich mittlerweile ermitteln können - leider noch nicht die Ursache.
Obwohl ich mich unter einem Usernamen anmelde dem ich zuvor einer Rolle zugewiesen habe, werde ich als anony, angemeldet - und da kein Template dafür existiet gibt's die Fehlermeldung.

Hier mal der Inhalt meiner config.web (die ich auf dem lokalen PC mittels Menü->Website->ASP.NET Konfiguration erstellt habe und nach Veröffentlichung des Projektes auf dem lokalen PC von Hand auf den Webserver kopiert habe:

<configuration>
	<appSettings/>
	<connectionStrings>
		<remove name="LocalSqlServer"/>
		<add name="LocalSqlServer" connectionString="Server=ATHLON2800\sqlexpress;Database=euro_2008;User ID=sa;Password=******" providerName="System.Data.SqlClient"/>
	</connectionStrings>
	<system.web>
		<customErrors mode="Off"/>
		<roleManager enabled="true"/>
		<compilation debug="true">
			<assemblies>
				<add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation>
		<membership>
			<providers>
				<remove name="AspNetSqlMembershipProvider"/>
				<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression="" requiresQuestionAndAnswer="false"/>
			</providers>
		</membership>
	</system.web>
</configuration>

Ich habe so das Gefühl als hätte ich da was falsch.
Wenn ich mir die aspnet-Tabellen anschaue sind die Rollen auch erstellt, was mich jedoch wundert ist, dass es jeden User 2x gibt - jedoch mit unterschiedlichen Aplication-ID's.
Ein Blick auf die Tabelle aspnet_Applications zeigt dann auch wirklich 2 unterschiedliche Einträge.
Einmal mit dem Applicationname "/Projektname" und einmal mit "/".

Hat noch jemand einen Tip?
Danke für Eure Hilfe.
Gruß
Maixmus.

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.