Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Projekt lokal veröffentlichen [ASP.NET 4.5]
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

Projekt lokal veröffentlichen [ASP.NET 4.5]

beantworten | zitieren | melden

Hi,

da ich noch etwas neu bin, bitte ich meine Anfängerfrage zu entschuldigen.

Ich habe eine fertiges ASP.NET 4.5 Projekt. Dies habe ich mit VS 2012 RC entwickelt und möchte dies nun auf einem Computer laufen lassen. Im Idealfall auch aus dem Netzwerk zugreifbar, aber auf einem Computer würde mir schon reichen.

Ich habe jetzt diesen Leitfaden (Gewusst wie: Bereitstellen eines Webanwendungsprojekts mit der One-Click-Veröffentlichung in Visual Studio) verfolgt und kann über localhost/Test im Browser auf meine Anwendung zugreifen.

Allerdings:

1) Das ganze Design ist weg, keine Farben, Bilder, Annordnungen, etc. vorhanden
2) Die Anwendung kann nicht mehr auf die Datenbank im Haupstverzeichnis zugreifen

Daher meiner Fragen:

Wie kann ich die Fehler beheben? Oder ist das überhaupt der richtige Weg? Wie gesagt: Die Anwendung soll eigentlich nur auf einem Computer laufen und über einen Browser aufzurufen sein.

Danke im Vorraus
Perhalo
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16204

beantworten | zitieren | melden

Hi,

zu aller erst finde ich es nicht wirklich gut, dass man sich im vorherein entschuldigt. Das suggeriert, dass man keine Lust hat, selbst die Lösung zu suchen.
Webanwendungen haben ihre eigene Welt; und diesbezüglich fordern sie ein anderes Grundwissen voraus, als es Desktopanwendungen tun.
Man muss auch sehr viel mehr aus eigener Kraft tun, da eben nicht jeder Fehler auf dem Präsentierteller serviert wird.

Wenn Deine Grafiken nicht funktionieren, dann liegt dass meist daran, dass der Pfad einfach falsch ist (sollte logisch sein). Wenn Du einen Blick in den Quellcode der ausgelieferte Seite geworfen hättest, wär Dir das sicherlich auch als Anfänger aufgefallen ;-) Alternativ würde Firefox zusammen mit Firebug einen Fehler auswerfen.
Da dies aber ein Grundlagenproblem ist und ich sowas nicht vorkaue, wie man sowas löst; hier eine Lösungsmöglichkeit für ASP.NET MVC - analog dazu gibts bestimmt was für WebForms (Du hast aber leider nicht verraten, was Du nutzt. ASP ist nicht gleich ASP): UrlHelper.Content().
Wenn Du nach Url.Content() googlest, wirst Du ziemlich viele Treffer bekommen.

Das Verwenden von falschen Pfaden ist die größte Fehlerquelle in einer Webanwendung, da sie aus der Anwendungssicher IMMER relativ sind. Wer das bei der Programmierung ignoriert, der wird sein blaues Wunder erleben - wie Du eben. =)

Das gleiche dürfte auch bei der Datenbank zum Tragen kommen: Du verwendets einfach im Code einen Pfad, der zwar auf Deiner Maschine gültig ist, aber nicht auf einer anderen Maschine bzw. unter einem anderen Context.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Oh, ich habe schon sehr viel versucht, mach dir da mal keinen Sorgen :) Die ganze Thematik scheint nur extrem groß und kompliziert zu sein, da weiß man irgendwann gar nicht mehr wo man ansetzen soll. Ich wäre schon sehr dankbar, wenn mir jemand sagen kann, in welcher Richtung ich weiterschauen muss.

Ich benutze WebSite für ASP.NET-Web-Forms-Anwendung.

Es verwundert mich halt, dass er das Design und die Bilder findet, wenn ich das Pojekt aus Visual Studio starte. Veröffentliche es aber auf localhost, ist der Hintergrund komplett weiß und alles verschoben bzw. falsch angeordnet.

Das mit der Datenbank hat jetzt geklappt, ich hatte nur vergessen sie dem Projekt hinzu zu fügen, weshalb sie im Veröffentlichungsordner nicht vorhanden gewesen ist.
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Ich hab mal den Tip genutzt und den Code über Firefox angeschaut. Für das ein Bild steht da jetzt folgendes:
<a id="TopHyperlink" href="http://www.123.de/" target="_new"><img src="Images/123.gif" alt="" /></a>

und im Quellcode
<asp:HyperLink ID="TopHyperlink" runat="server" ImageUrl="~/Images/123.gif" NavigateUrl="http://www.123.de/" Target="_new"></asp:HyperLink>

Das ist doch eigentlich richtig, oder nicht? Meine Datenbank findet er unter

@"~\App_Dat\Typwerte.mdb"
.

Aber wieso zeigt er dann die Bilder und Farben nicht an?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Perhalo am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16204

beantworten | zitieren | melden

Zitat
Aber wieso zeigt er dann die Bilder und Farben nicht an?
Weil Deine Resourcen nicht gefunden werden!

Nochmal: alle Pfaden in einer Webanwendung sind relativ.
Die URL im Browser ist hier die Basis.

Wenn Du Images/123.gif drin stehen hast, und die Domain mydomain.com heißt, dann wird mydomain.com/Images/123.gif aufgerufen.
Bist Du aber nicht mehr auf der Hauptseite, sondern auf einer Unterseite mydomain.com/Unterseite dann versucht der Browser mydomain.com/Unterseite/Images/123.gif aufzurufen.
Merkst jetzt was?

Erster Google-Treffer: Avoiding problems with relative and absolute URLs in ASP.NET
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Ich verstehe das Prinzip schon. (glaube ich zumindest :D) Trotzdem denke ich nicht, dass dies mein Problem ist. Hier ist eine ganz gute Auflistung zu der Thematik. Ich denke ich habe da den 2. Fall:

http://www.akademie.de/wissen/html-lernen-1-grundlagen/relative-pfade



Wenn ich jetzt auf

http://localhost/MyWebTest/Contact.aspx

bin und mein Bild in

C:\inetpub\wwwroot\MyWebTest\Images\123.gif

liegt, ist doch die Addressierung mit
ImageUrl="~/Images/123.gif"

genau richtig, oder versteh ich da irgendwas grundlegend falsch?

Auf einen WebServer hat das übrigens schon funktioniert. Nur brauch ich das auf einem Server auf dem Computer.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16204

beantworten | zitieren | melden

Primär ist "egal", wie Du das Image deklarierst.
Wichtig und entscheidend ist, was an den Client geschickt wird und was aufgerufen wird.

Installier die Firefox und Firebug, und schaut nach, was für nen Fehler beim Laden der Resourcen auftaucht; wahrscheinlich 404, da der Pfad nicht stimmt.
~/ ist kein Allheilmittel; das einzige, was ich bisher als generelle Lösung bei ASP.NET kenne ist, Url.Content() - allerdings nur in MVC verfügbar.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Also die Bilder funktionieren jetzt...gott weiß wieso. Ich hab nichts an den Pfaden oder sonstwie geändert, eigentlich hab ich das Projekt nur nochmal neu auf den IIS gepackt.

Leider gehen die Styles immer noch nicht, weshalb immer noch alles einfach hintereinander weggeschrieben wird. Da die Pfade ja richtig zu sein scheinen (sonst würde er die Bilder ja nicht finden) und die Site.css auf dem Server zu finden ist (hab sie manuell aufgerufen), bin ich doch etwas ratlos.
Kann das an irgendwelchen Einstellungen liegen. Ich benutze IIS 6.1, da ich über keine neuere Version von Windows Server verfügen kann.

Prinzipiell sieht mein Site.Master wie folgt aus:
<head id="Head1" runat="server">
    <meta charset="utf-8" />
    <title>
        <%: Page.Title %>
        - 123 GmBh</title>
    <% if (false) { %><%--Designer support--%>
    <link runat="server" href="~/Content/Site.css" rel="stylesheet" />
    <% } %>
    <asp:PlaceHolder runat="server">
        <%: Styles.Render("~/Content/themes/base/css", "~/Content/css") %>
        <%: Scripts.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width" />
    <asp:ContentPlaceHolder runat="server" ID="HeadContent" />
</head>

Falls du oder jemand anders noch eine weitere Idee hat, wäre ich sehr dankbar ;)
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16204

beantworten | zitieren | melden

Styles.Render() ist MVC, nicht WebForms. Was nutzt Du jetzt?
Solltest Dich entscheiden.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

sieht mir auch danach aus, als wolltest Du hier MVC und WebForms mischen.
Es gibt Leute, die damit teilweise (mit einzelnen Controls) erfolgreich waren, aber lass besser die Finger davon. Damit handelst Du Dir nur Probleme ein, die kaum jemand nachvollziehen oder verstehen kann.
Zitat von Abt
Solltest Dich entscheiden.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Hi,

danke für die ganzen Antworten. Ich hab gar nix versucht zu mischen. Ich hab mir einfach nur von VS2012 eine WebForms Vorlage erstellen lassen. (wie gesagt: totaler Anfänger)

Inzwischen habe ich das Problem gefunden:
    <% if (false) { %><%--Designer support--%>
    <link runat="server" href="~/Content/Site.css" rel="stylesheet" />
    <% } %>

Diese if-Abfrage (wie erwähnt aus der Vorlage von VS) hat verhindert, dass die Styles geladen werden. Nachdem ich Sie entfernt hatte, lief es sofort.

Jetzt muss ich "nur noch" meine Benutzerverwaltung hinbekommen und gut is
private Nachricht | Beiträge des Benutzers