Laden...

Iis

Erstellt von alex309 vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.734 Views
A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren
Iis

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

484 Beiträge seit 2006
vor 17 Jahren

Einfach http://localhost/default.aspx aufrufen 🙂

Gruß Jörg

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

funktioniert leider nicht!

Seite wurde nicht gefunden!

484 Beiträge seit 2006
vor 17 Jahren

Läuft der IIS?

Was ist wenn Du http://localhost aufrufst?

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

85 Beiträge seit 2006
vor 17 Jahren

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!"

blog.freakfabrik.net

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

85 Beiträge seit 2006
vor 17 Jahren

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!"

blog.freakfabrik.net

484 Beiträge seit 2006
vor 17 Jahren

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

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

ich musste noch aspnet_regiis -i ausführen.
die site funktioniert nun.
asp.net 2.0 ist auch eingestellt, hat er dann automatisch gemacht.

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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"));

484 Beiträge seit 2006
vor 17 Jahren

Request.ApplicationPath liest den virtuellen Pfad aus.

Wenn hersteller dein virt. Root ist dann nimm:

Server.MapPath(Request.ApplicationPath + "\\App_Data\\laender.xml"));
A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

484 Beiträge seit 2006
vor 17 Jahren

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

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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.

85 Beiträge seit 2006
vor 17 Jahren

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!"

blog.freakfabrik.net

85 Beiträge seit 2006
vor 17 Jahren

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!"

blog.freakfabrik.net

484 Beiträge seit 2006
vor 17 Jahren

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

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

der Name debug ist im aktuellen Kontext nicht vorhanden.

484 Beiträge seit 2006
vor 17 Jahren
Response.Write(Request.ApplicationPath);

Is ja ne Webpage

L
254 Beiträge seit 2005
vor 17 Jahren

/klugscheiss/

Bitte nicht "&quot; oder so verwenden sondern;


Path.DirectorySeparatorChar; //Vielleicht willste ja mal aufn MONO mit Linux ;-)

Gruss

If you can't make it, fake it.

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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.

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

"\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...

L
254 Beiträge seit 2005
vor 17 Jahren

Geht auf verschiedenste Arten😉

Path.DirectorySeparatorChar ist die "sauberste"

If you can't make it, fake it.

484 Beiträge seit 2006
vor 17 Jahren

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

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

L
254 Beiträge seit 2005
vor 17 Jahren

Noch einer


HttpContext.Current.Request.ApplicationPath

^^

If you can't make it, fake it.

484 Beiträge seit 2006
vor 17 Jahren

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

85 Beiträge seit 2006
vor 17 Jahren

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!"

blog.freakfabrik.net

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

habe es nun mal mit HttpContext.Current.Request.PhysicalApplicationPath; getestet. Es kommt leider derselbe fehler. 😜

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

484 Beiträge seit 2006
vor 17 Jahren

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

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

484 Beiträge seit 2006
vor 17 Jahren

Original von alex309
http:\meinRechnerName\siteOrdner\default.aspx

Nimm doch mal Slashes

http://meinRechnerName/siteOrdner

Jörg

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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

484 Beiträge seit 2006
vor 17 Jahren

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

A
alex309 Themenstarter:in
91 Beiträge seit 2006
vor 17 Jahren

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.

484 Beiträge seit 2006
vor 17 Jahren

Dann geh mal auf:
[Erstellen] > [Website veröffentlichen]

Jörg