Hallo,
ich habe IIS installiert und meine website in den ordner Inetpub/wwwroot gepackt.
Wenn ich nun über http:\localhost\Inetpub\wwwroot\default.aspx auf die Seite zugreifen will, sagt er mir, dass er die Seite nicht finden kann.
Was muss man denn noch alles einstellen um auf diesem Weg die Seite angezeigt zu bekommen?
mfg
alex
ja der läuft.
wenn ich im vs auf debuggen gehe, zeigt er mir die Seite an und sie funktioniert auch. 🙂
wenn ich http://localhost/meinordner/default.aspx aufrufe sieht es so aus als ob er in einer endlosschleife hängt. Das kann aber nicht sein, da die seite ja im vs geht.
mfg
alex
wenn ich localhost aufrufe gehen 2 seiten auf localstart.asp und localhost/iishelp/iis/misc/default.asp
habe meine Seite gefunden localhost/meinordner/default.aspx
nur siehe problem oben
Ist die Seite in ASP.Net 1.1 oder ASP.Net 2.0 geschrieben und auf was ist der IIS eingestellt?
"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"
mit visual studio 5 , ich nehme doch dann mal an, dass es asp 2.0 ist.
was für einstellungen willst du denn wissen für den iis?
mein ordner ist im iis unter standardwebsite aufgeführt.
mfg
alex
Du kannst im IIS einstellen welche ASP.Net-Version er verwenden soll (1.0,1.1 oder 2.0). Die Einstellung findet sich in den Einstellungen zu einer Website oder einem Verzeichnis mit Anwendungsnamen im Tab "ASP.NET" und dort unter "ASP.NET-Version".
"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"
Debugst Du denn auch auf dem lokalen IIS?
Hast Du deinen Ordner als Anwendung eingestellt?
Auf dem Reiter ASP.NET (siehe Bild) muss dann auch 2.0 eingestellt werden.
per default läuft die IIS Standardwebsite unter 1.1
Gruß Jörg
ich musste noch aspnet_regiis -i ausführen.
die site funktioniert nun.
asp.net 2.0 ist auch eingestellt, hat er dann automatisch gemacht.
hallo,
wenn ich den pfad so angebe, sagt er mir beim debuggen, dass er den pfad nicht finden kann. (im server.mapath ist dann 2 mal der ordner hersteller drin)
c:\Inetpub\wwwroot\hersteller\hersteller\App_Data\laender.xml
Im Browser kann ich aber die Site anzeigen lassen. Wenn ich nun bei server.mappath den einen hersteller lösche, meckert mir mein browser, dass er den pfad nicht findet.
laender.ReadXml(Server.MapPath(Request.ApplicationPath + "\\hersteller\\App_Data\\laender.xml"));
Request.ApplicationPath liest den virtuellen Pfad aus.
Wenn hersteller dein virt. Root ist dann nimm:
Server.MapPath(Request.ApplicationPath + "\\App_Data\\laender.xml"));
ja, wenn ich es so mache dann meckert mir mein browser 🙂
wo kann da der fehler liegen?
ich könnte, wenn ich die site bearbeite den pfad immer ändern, dass ist aber nicht sinn der sache.
mfg
alex
Da liegt bestimmt an etwas anderem z.B.: laender.ReadXml(...)
Meine Glaskugel, geht heut nicht 😉
Ein bischen mehr Code wäre da besser!
Happy Coding
Jörg
if (!this.IsPostBack)
{
DataSet laender = new DataSet();
string bla = Server.MapPath(Request.ApplicationPath+ "\\App_Data\\laender.xml");
txb_typ5.Text = bla;
laender.ReadXml(Server.MapPath(Request.ApplicationPath+ "\\hersteller\\App_Data\\laender.xml"));
int index = 0;
while (index < laender.Tables[0].Rows.Count)
{...
Wenn ich den string bla verwende meckert mein Browser-->
Ein Teil des Pfades c:\inetpub\wwwroot\App_Data\laender.xml konnte nicht gefunden werden.
(string bla = "C:\Inetpub\wwwroot\hersteller\App_Data\laender.xml")
Bei laender.ReadXml(); meckert visual studio-->
Ein Teil desPfades C:\Inetpub\wwwroot\hersteller\hersteller\App_Data\laender.xml konnte nicht gefunden werden.
mach mal folgendes:
debug.writeline (Request.ApplicationPath)
Und Poste mal was er ausgibt.
"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"
Außerdem ist der Weg wie ich in aus ASP herraus kenne so:
string bla = Server.MapPath("/hersteller/App_Data/laender.xml")
Dass Request.ApplicationPath kannst dir dabei schneken. Probiers mal aus. Das sollte gehen!!
"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"
Was hast Du dauernd mit deinem Browser? 🤔
Du möchtest doch ein DataSet das als xml in App_Data liegt einlesen,
Wenn der Pfad stimmt und die Datei existiert, dann hast Du dein DataSet "laender" gefüllt und kannst denn damit arbeiten.
Dein Browser ruft doch nur die http://localhost/laender/default.aspx auf und wartet auf die Dinge die da gerendert werden.
Da fällt mir gerade noch was ein:
// ändere
Server.MapPath(Request.ApplicationPath + "\\App_Data\\laender.xml"));
// in
Server.MapPath(Request.ApplicationPath + "/App_Data/laender.xml"));
Jörg
Response.Write(Request.ApplicationPath);
Is ja ne Webpage
/klugscheiss/
Bitte nicht "" oder so verwenden sondern;
Path.DirectorySeparatorChar; //Vielleicht willste ja mal aufn MONO mit Linux ;-)
Gruss
If you can't make it, fake it.
sorry, hatte aber schon angefangen
meinen pfad in eine variable zu speichern(die ich anselle von Server.MapPath etc verwende). so funktioniert es jetzt. Im browser und im visual studio.
"\App_Data\daten.xml"
das funktioniert auch.
wenn man pfadangaben macht kenne ich es noch so vom vs 2002
@"C:\order\ordner2";
das geht aber auch nicht so ohne weiteres mehr...
also am besten slashs machen...
Geht auf verschiedenste Arten😉
Path.DirectorySeparatorChar ist die "sauberste"
If you can't make it, fake it.
Viele Wege führen nach Rom 🙂
// Erstmal so
Server.MapPath(Request.ApplicationPath + "/App_Data/laender.xml");
// Dann ändern wir mal die Klammerung und der ZusatzPfad wir Server.MapPath zugewiesen:
Server.MapPath(Request.ApplicationPath) + "\\App_Data\\laender.xml";
// oder so
Server.MapPath(Request.ApplicationPath) + @"\App_Data\laender.xml";
// oder nach "klugscheisser" ;)
Server.MapPath(Request.ApplicationPath) + System.IO.Path.DirectorySeparatorChar + "App_Data" + System.IO.Path.DirectorySeparatorChar + "laender.xml";
Jörg
hm...also hier ist meine "alte variante" wohl nicht dabei 🙂
Server.MapPath(Request.ApplicationPath + "\\App_Data\\laender.xml");
habe das so aus einer 3 jahre alten anwendung kopiert.
Man muss also definitiv eine klammer um Server.MapPath(Request.Apl..)
machen?
mfg
alex
Noch einer
HttpContext.Current.Request.ApplicationPath
^^
If you can't make it, fake it.
Original von alex309
hm...also hier ist meine "alte variante" wohl nicht dabei 🙂Server.MapPath(Request.ApplicationPath + "\\App_Data\\laender.xml");
habe das so aus einer 3 jahre alten anwendung kopiert.
Man muss also definitiv eine klammer um Server.MapPath(Request.Apl..)
machen?
Nicht unbedingt, denn obwohl es "unschön" ist, wird der Pfad intern umgewandelt
// Mit Dank an Reflector :)
internal static string FixVirtualPathSlashes(string virtualPath)
{
virtualPath = StringUtil.Replace(virtualPath, '\\', '/');
while (true)
{
string text1 = virtualPath.Replace("//", "/");
if (text1 == virtualPath)
{
return virtualPath;
}
virtualPath = text1;
}
}
Also im Grunde - mach wie Du denkst 😉
Jörg
Das hier ließt sich einfacher und sicht übersichtlicher aus:
string DSC = System.IO.Path.DirectorySeparatorChar;
string bla = Server.MapPath(Request.ApplicationPath) + DSC + "App_Data" + DSC + "laender.xml";
"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"
habe es nun mal mit HttpContext.Current.Request.PhysicalApplicationPath; getestet. Es kommt leider derselbe fehler. 😜
zurück zum eigentlichen thema! 😁
ich kann die site über meinen browser anzeigen lassen. wenn ich es mit einem andern pc versuche, sagt er ...kann nicht gefunden werden.
ich suche auch verzweifelt meinen bin-ordner mit den dll´s. 🙂
wo dran kann das liegen?
mfg
alex
Original von alex309
zurück zum eigentlichen thema! 😁ich kann die site über meinen browser anzeigen lassen. wenn ich es mit einem andern pc versuche, sagt er ...kann nicht gefunden werden.
Wie rufst Du denn die Page vom anderen Rechner auf http://localhost 🤔
Hast Du überhaupt nen IIS installiert 🤔
Jörg
http:\meinRechnerName\siteOrdner\default.aspx
den IIS habe ich auf meinem Rechner installiert.
Deshalb kann ich ja die site über meinen Browser öffnen.
mfg
alex
Original von alex309
http:\meinRechnerName\siteOrdner\default.aspx
Nimm doch mal Slashes
http://meinRechnerName/siteOrdner
Jörg
sorry, habe slashes benutzt nur falsch geschrieben.
hm... es funktioniert jetzt.
die frage ist nur wie ich jetzt die site auf den server bekomme. habe es mit website veröffentlichen versucht, ging aber nicht. einfach den ganzen ordner in das webverzeichniss vom server kopieren ging auch nicht 😁
wo ist denn mein bin ordner mit den dll´s ?
mfg
alex
Also jetzt drückste mal [F1] 🤔
Das sind doch im Grunde alles Fragen, die man mit der Taste [F1] im VS wunderbar herausfindet.
Jörg
ich meinte damit eigentlich, dass bei meinen alten projekten immer ein binordner mit den dll´s vorhanden war.
in meinem projekt ist kein bin-ordner, deshalb habe ich gefragt.
Dann geh mal auf:
[Erstellen] > [Website veröffentlichen]
Jörg