Avatar billede davidfossil Nybegynder
24. november 2005 - 11:20 Der er 13 kommentarer og
1 løsning

Ændre værdi på property i IIS meta base

Jeg har længe ønsket mig en hurtig måde at skifte sin IIS wwwroot path, for at gøre det let at arbejde med flere projekter. Har ikke kunne finde nogen løsning ved mine søgninger her og på Google, men har dog fundet frem til en spændende ActiveX komponent der ligger i Windows, nemlig "MetaUtil".

Følgende kodeeksempel kræver en reference til MetaUtil (fundet i Windows/System32), og kan udskrive din nuværende wwwroot path til konsollen.

using System;
using System.Collections.Generic;
using System.Text;
using MetaUtil;

namespace ChangeIISRoot
{
    class Program
    {
        static void Main(string[] args)
        {
            MetaUtilClass metaBase = new MetaUtilClass();
            IProperty pathProperty = metaBase.GetProperty("/LM/W3SVC/1/ROOT", 3001);

            Console.WriteLine(pathProperty.Data);
            Console.ReadLine();
        }
    }
}

Hvordan jeg ændrer værdien kan jeg til gengæld ikke finde ud af. Jeg har anelser om at man skal bruge "set_Config()" metoden, men jeg kan ikke finde ud af hvilke parametre den skal tage.

Nogen der har erfaring her, eller blot har lyst til at forsøge at knække gåden? :)
Avatar billede Syska Mester
24. november 2005 - 12:15 #1
Hvorfor ændre det? Kan du ikke bare oprette nogle subdomains eller have flere mapper på din server?
Når du skriver på den her måde lyder det som om du koder i 2003, right?

2005 har jo indbygget http server... meget smart :-)

// ouT
Avatar billede davidfossil Nybegynder
24. november 2005 - 16:38 #2
> Hvorfor ændre det? Kan du ikke bare oprette nogle subdomains eller have flere mapper på din server?

Well, sidder på en XP spand med den indbyggede IIS 5.1 som ikke (AFAIK) giver mulighed for subdomains.


> Når du skriver på den her måde lyder det som om du koder i 2003, right?

Yes, det er lige hvad jeg gør. Forhåbentligt vil flere projekter snart kunne flyttes til 2.0, men pt. har jeg rimelig mange projekter kørende i 1.1...
Avatar billede Syska Mester
24. november 2005 - 17:26 #3
okay, jo før jo bedre.... meget nemmere i asp.net 2.0, kan klart anbefales... Men jeg må nok melde pass til asp.net 1.0.....

hmm, er da ret sikker på at den understøtter subdomains, men jeg kan da selvf tage fejl, har ikke nogen maskine jeg kan se det på pt.

Hvad er der i vejen for at køre dem i undermapper på serveren? brude det ikke kunne løse dit problem?

// ouT
Avatar billede burningice Nybegynder
24. november 2005 - 19:37 #4
buzzzz>> nej, man kan ikke køre mere end et website på en IIS der kører på en workstation.

Ang. undermapper, så giver det en træls begrænsning omkring brugen af / i sine href's og src's i html, da browseren ikke vil se / som starten af undermappen, men som starten af hele domænet.

Har selv døjet en del med det. Ændte med at lave et program der kopierede alle filer ud af www-roden, og lagde nogle andre ind i stedet. Det virkede sådan set fint nok. Ellers kan jeg anbefale at udvikle på en windows 2003'er.
Avatar billede davidfossil Nybegynder
24. november 2005 - 22:58 #5
burningice > Det var selvfølgelig også en mulighed at simpelthen at flytte rundt på mapperne i filsystemet. Fx kunne man have alle sine projekter i én og samme mappe, og så bruge et lille tool til at skifte mellem dem (ved at rename mapper).

Dog ville jeg hellere have det skitserede med MetaUtil til at virke - det er jo så tæt på :) Jeg kan godt få den til at oprette nye elementer i metabasen, men bare ikke lure hvordan jeg kan ændre de eksisterende...
Avatar billede Syska Mester
24. november 2005 - 23:06 #6
Ja, men jeg vil sige at kode direkte siger er en dum ide' generalt.... brug relative stier, så ville problemer som disse aldrig opstå.... :-)

// ouT
Avatar billede burningice Nybegynder
25. november 2005 - 00:32 #7
så du vil istedet bruge x antal ../ for at komme tilbage til roden? hmm, lyder interessant, især hvis du måske er i en fil på det 5 led, eller i en UserControl som kan blive brugt på forskellige niveauer.
Avatar billede Syska Mester
25. november 2005 - 11:19 #8
ellers ville jeg bruge en varialbe til at sætte

root = "/supermand/" + "link"

Kan ikke se problemet... der er da mange løsninger....

Måske fordi jeg er fra php verdenen.... aner det ik'

// ouT
Avatar billede burningice Nybegynder
25. november 2005 - 13:13 #9
jamen... der benytter du jo netop / for at komme til root
Avatar billede burningice Nybegynder
25. november 2005 - 13:16 #10
man kan selvfølgelig, som du også fint skitserer, indsætte "hvad ens projekt-navn måtte være" foran alle sine links, men gør du ærlig talt det ved f.eks. alle din img's?

<img src="/<% = Application("siteName") %>/images/hej.gif" />

Det bliver da lidt træls i længden
Avatar billede Syska Mester
25. november 2005 - 17:25 #11
nej, som sagt, jeg bruger relative stier.....

Det andet var bare en mulighed, da det måske en dag skal ligge i en undermappe på et andet domain, så har du jo netop et problem....
Avatar billede davidfossil Nybegynder
15. december 2005 - 21:33 #12
buzzzz > er det muligt i vs2005 at sætte den indbyggede webserver op, således at den ikke lægger applikationen i en mappe? altså så jeg tester på:

http://localhost:xxxx/Default.aspx

i stedet for:

http://localhost:xxxx/MyProject/Default.aspx

Sådan som det fungerer nu, har det jo intet hjulpet i forhold til VS2003... :(
Avatar billede davidfossil Nybegynder
15. december 2005 - 22:28 #13
Avatar billede davidfossil Nybegynder
22. marts 2006 - 10:30 #14
Jeg tillader mig at kalde mine points tilbage her. I skal have tak for de spændende pointer, men der er ingen af kommentarerne der leder mod svar på mit oprindelige spørgsmål om MetaUtil.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester