Avatar billede jps2mt Nybegynder
30. december 2000 - 22:08 Der er 35 kommentarer og
1 løsning

Oprette nyt site i IIS?!

Hej.

Findes der en mde hvorpå man kan oprette et nyt site i IIS 5 via ASP, eller skal man via web-manageren, og i dette tilfælde, hvad skal man sende til hvilken fil??

Mvh. Morten
Avatar billede tdaugaard Nybegynder
30. december 2000 - 22:11 #1
oprette et nyt site ? Altås oprette en ny mappe og sådann noget ?
Avatar billede jps2mt Nybegynder
30. december 2000 - 22:17 #2
Nej...Oprette et nyt site...Det med mappen kan jeg sagtens...

Men oprette eks.: test.trab.dk som så skal ha\' homediret d:\\webs\\test og evt. med FP ext.
Avatar billede tdaugaard Nybegynder
30. december 2000 - 22:19 #3
nåå, ikke af hvad jeg ved.. der skal du nok enten bruge en komponent lavet specielt til det, eller også skal du gøre det som du selv  siger via web-manageren.
Avatar billede theportal Nybegynder
31. december 2000 - 00:22 #4
Avatar billede mrcorex Nybegynder
02. januar 2001 - 13:10 #5
Der findes ikke andre måder at gøre det på end ved \"Internet Services Manager\". Både på NT4.0 og W2K. Ved at du opretter det denne vej får du en dialog-boks hvor alt relevant indtastes.

Bemærk at du kan kun adressere dit \"nye\" site ved at din IP-adresse har fået et alias!!!!
Avatar billede jps2mt Nybegynder
02. januar 2001 - 13:13 #6
Corex >> Nej, der har du ganske uret. Er nemlig kommet så langt at i x:\\inetpub\\adminscripts findes der en fil der hedder mkw3site.vbs, og denne kan bruges.

Har fået det til at virke via commandline, men ikke via mit ASP-script, hvor den skal ekseveres af ASPExec...
Avatar billede mrcorex Nybegynder
02. januar 2001 - 13:33 #7
Okay, jeg bøjer mig. Det vidste jeg ikke. Kan du ikke smide filen her så jeg kan hente den. Den vil jeg gerne se. Måske kan jeg få den til at virke.
Avatar billede jps2mt Nybegynder
02. januar 2001 - 15:52 #8
corex >> Problemet er ikke at jeg ikke kan få den til at virke...Den virker fint...MEN...Den vil åbenbart ikke køre sammen med en ASP, da det jo er et WSH script, og jeg ikke aner om der er en indbygget funktion der kan køre WSH scripts...
Avatar billede theportal Nybegynder
02. januar 2001 - 17:19 #9
tjaa, det er et lidt større problem at execute den der vbs fil, den kommer jo også op med en msgbox, og jeg tror sq ikke at ASP lige trykker ok til den box!

Leder efter lidt info omkring WSH + ASP
Avatar billede jps2mt Nybegynder
02. januar 2001 - 17:25 #10
theportal >> Håber du kan finde noget, da det VBS kan lige det jeg mangler i at kunne komme vidre...
Avatar billede jps2mt Nybegynder
05. januar 2001 - 17:06 #11
theportal >> Fundet noget brugbart??
Avatar billede theportal Nybegynder
05. januar 2001 - 18:59 #12
Ikke endnu, men jeg lover at jeg vil kigger i aften!!
Avatar billede jps2mt Nybegynder
05. januar 2001 - 19:10 #13
theportal >> A tåkker... 8)
Avatar billede martens Guru
05. januar 2001 - 20:38 #14
Jeg kigger lige med...
med har fundet lidt interessant :

http://www.microsoft.com/TechNet/iis/autoadm2.asp
mvh martens
Avatar billede theportal Nybegynder
06. januar 2001 - 09:58 #15
Det som Martens linker til er nok det bedste, specielt tænker jeg op denne kode:

<%
Dim WebServerRootObj
Dim VDirObj
Dim WritePerm

\' Open the object for the first virtual Web server root
Set WebServerRootObj = GetObject(\"IIS://MyComputer/W3SVC/1/Root\")

\' Deny write access for all directories and files
\' for the server (except those already specifically set)
\' Using the Put method
WebServerRootObj.Put \"AccessWrite\", False

\' Save the changed value to the metabase
WebServerRootObj.SetInfo

\' Get a directory subordinate to the Web server root
Set VDirObj = GetObject(\"IIS://MyComputer/W3SVC/1/Root/Vdir1/VDir1a\")

\' Overwrite the inherited value for write access
\' Using the dot method equivalent to Put
VDirObj.AccessWrite = True

\' Save the changed value to the metabase
VDirObj.SetInfo
%>


The next example shows you how to write a customized script to create a virtual directory with Read, Script only, and Directory browsing permission.

<%
\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
\' ADSI ASP Sample Program
\' This is a sample of how to create a virtual directory using ADSI
\'
\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
Option Explicit
On Error Resume Next

\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
\' First, open the path to the Web server you are
\' trying to add a vdir to

Dim ServObj
Dim VdirObj
Dim Testpath

Set ServObj = GetObject(\"IIS://LocalHost/w3svc/1/Root\")
if (Err <>0) then
Response.Write \"GetObject (\"\"IIS://LocalHost/w3svc/1/Root\"\") Failed! <br>\"
Response.Write \"Error! \" & Err.Number & \"(\" & Hex(Err.Number) & \"): \" & Err.Description & \"<br>\"
Response.End
end if

\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
\' Second, Create the vdir path
Set VdirObj = ServObj.Create(\"IIsWebVirtualDir\", \"MyVdir\")
VdirObj.SetInfo
if (Err<>0) then
Response.Write \"CreateObject (\"\"IIS://LocalHost/w3svc/1/Root/MyVdir\"\") Failed!<br>\"
Response.Write \"Error! \" & Err.Number & \"(\" & Hex (Err.Number) & \"): \" & Err.Description &

\"<br>\"
Response.End
end if

\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
\' Finally, create a Path variable containing the VR path and
\' set the permissions to read, script, and directory browsing
VdirObj.AccessRead = True
VdirObj.AccessScript = True
VdirObj.EnableDirBrowsing = True
Testpath = \"C:\\Temp\"
VdirObj.Put \"Path\", (Testpath)

VdirObj.SetInfo
if (Err<> 0) then
Response.Write \"Put (\"\"Path\"\") Failed!\"
Response.Write \"Error! \" & Err.Number & \"(\" & Hex (Err.Number) & \"): \" & Err.Description &

\"<br>\"
Response.End
end if

Response.Write \"VDIR successfully created\"

\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
\' The minimum amount necessary to create a virtual directory has now
\' been completed. If you need to add more, do it here.

%>

Kan ihvertfald bruges til et vdir, måske man kan finde et script der kan lave et w3site

/TP
Avatar billede theportal Nybegynder
06. januar 2001 - 10:01 #16
Evt. i din HTTPExec så skrive dette

Cscript.exe (ikke c:\\)inetpub\\script\\bla bla.vbs
Avatar billede jps2mt Nybegynder
06. januar 2001 - 14:01 #17
TP >> Har godt set det script du skriver der, men som du selv siger...Det duer kun til vdir...D kan jeg ikke bruge til noget...

Og D andet du skriver duer heller ikke...
Avatar billede bacardil Nybegynder
06. januar 2001 - 14:04 #18
lytter med
Avatar billede theportal Nybegynder
06. januar 2001 - 14:37 #19
Hmm, hvis den med CScript foran ikke virker, så ved jeg sq ikke helt hvad man ellers kan gøre! For den åbner jo bare et vindue i baggrunden, og ikke noget med MsgBox\'es osv.!

Leder videre!
Avatar billede theportal Nybegynder
06. januar 2001 - 14:40 #20
Kunne man ikke ligge den der cscript bla bla bla, ind i en .bat fil og så execute den fra HTTPExec
Avatar billede theportal Nybegynder
06. januar 2001 - 14:44 #21
og den jeg referere til som HTTPExec er selvfølgelig ASPExec½
Avatar billede jps2mt Nybegynder
06. januar 2001 - 23:16 #22
theportal >> Det kan nok blive et problem, da VBS-filen skal ha\' parametrene fra en MySQL database...
Avatar billede theportal Nybegynder
07. januar 2001 - 13:28 #23
Prøv dette:

Med FSO laver du en .bat fil
Du skriver denne linie CScript.exe alt det der (dert kan du jo bare dataen fra MySQL Databasen)
Execute din bat fil
Slet din bat fil

Altså du laver en ny fil hvergang!
Avatar billede jps2mt Nybegynder
11. januar 2001 - 17:47 #24
TP >> Undskyld den lange svartid...

Det virker heller ikke...Den returnerer bare ok fra ASPExec..Men der sker ikke noget, den vil bare ikke oprette noget :-(
Avatar billede theportal Nybegynder
11. januar 2001 - 18:27 #25
Hmm, hvis det med batch filerne ikke virker, så må keg jo grave endnu dybere i min sparsomme viden!

Vender tilbage senere i dag, eller måske først i morgen!
Avatar billede theportal Nybegynder
11. januar 2001 - 18:34 #26
Ville det ikke være muligt at overføre WSH Scriptet til ASP, altså fjerne det med Arguments og ændre det til Querystrings fx.

Ellers skal vi have fat i noget ADSI
Avatar billede jps2mt Nybegynder
11. januar 2001 - 18:38 #27
TP >> Det ville sikkert være muligt, men jeg kan bare ikke få det til at virke...
Avatar billede theportal Nybegynder
11. januar 2001 - 18:44 #28
Hmm, jeg prøver en gang!
Avatar billede jps2mt Nybegynder
11. januar 2001 - 18:55 #29
Lyder godt...Prøver også selv at rode lidt vidre med det der .bat-sjov...
Avatar billede theportal Nybegynder
11. januar 2001 - 19:08 #30
Tror jeg har noget, du skal bare finde ud af hvordan du vil have dine data!

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME=\"GENERATOR\" Content=\"Microsoft Visual Studio 6.0\">
</HEAD>
<BODY>

<%
\'------------------------------------------------------------------------------------------------
\'
\' This is a simple script to create a new virtual web server.
\'
\' Usage: mkw3site <--RootDirectory|-r ROOT DIRECTORY>
\'                        <--Comment|-t SERVER COMMENT>
\'                        [--computer|-c COMPUTER1[,COMPUTER2...]]
\'                        [--HostName|-h HOST NAME]
\'                        [--port|-o PORT NUM]
\'                        [--IPAddress|-i IP ADDRESS]
\'                        [--SiteNumber|-n SITENUMBER]
\'                        [--DontStart]
\'                        [--verbose|-v]
\'                        [--help|-?]
\'
\' IP ADDRESS            The IP Address to assign to the new server.  Optional.
\' HOST NAME            The host name of the web site for host headers.
\'                        WARNING: Only use Host Name if DNS is set up find the server.
\' PORT NUM              The port to which the server should bind
\' ROOT DIRECTORY        Full path to the root directory for the new server.
\' SERVER COMMENT        The server comment -- this is the name that appers in the MMC.
\' SITENUMBER        The Site Number is the number in the path that the web server
\'                        will be created at.  i.e. w3svc/3
\'
\' Example 1: mkw3site -r D:\\Roots\\Company11 --DontStart -t \"My Company Site\"
\' Example 2: mkw3site -r C:\\Inetpub\\wwwroot -t Test -o 8080
\'------------------------------------------------------------------------------------------------


\' Force explicit declaration of all variables
On Error Resume Next

Dim ArgIPAddress, ArgRootDirectory, ArgServerComment, ArgSkeletalDir, ArgHostName, ArgPort
Dim ArgComputers, ArgStart
Dim ArgSiteNumber
Dim oArgs, ArgNum
Dim verbose

ArgIPAddress = \"\"
ArgHostName = \"\"
ArgPort = 80
ArgStart = True
ArgComputers = Array(1)
ArgComputers(0) = \"LocalHost\"
ArgSiteNumber = 0
verbose = false
\'OMKRING HER SKAL DU BEGYNDE AT FINDE UD AF HVORDAN DU VIL HENTE DINE ARGUMENTS, JEG HAR PRØVET AT HENTE DEM VIA EN QUERYSTRING, MEN DET VIRKEDE SQ IKKE HELT

Set oArgs = Request.QueryString
ArgNum = 0

While ArgNum < oArgs.Count

    Select Case LCase(oArgs(ArgNum))
        Case \"--port\",\"-o\":
            ArgNum = ArgNum + 1
            ArgPort = oArgs(ArgNum)   
        Case \"--ipaddress\",\"-i\":
            ArgNum = ArgNum + 1
            ArgIPAddress = oArgs(ArgNum)
        Case \"--rootdirectory\",\"-r\":
            ArgNum = ArgNum + 1
            ArgRootDirectory = oArgs(ArgNum)
        Case \"--comment\",\"-t\":
            ArgNum = ArgNum + 1
            ArgServerComment = oArgs(ArgNum)
        Case \"--hostname\",\"-h\":
            ArgNum = ArgNum + 1
            ArgHostName = oArgs(ArgNum)
        Case \"--computer\",\"-c\":
            ArgNum = ArgNum + 1
            ArgComputers = Split(oArgs(ArgNum), \",\", -1)
        Case \"--sitenumber\",\"-n\":
            ArgNum = ArgNum + 1
            ArgSiteNumber = CLng(oArgs(ArgNum))
        Case \"--dontstart\":
            ArgStart = False
        Case \"--help\",\"-?\":
           
        Case \"--verbose\", \"-v\":
            verbose = true
        Case Else:
            Response.Write \"Unknown argument \"& oArgs(ArgNum)
           
    End Select   

    ArgNum = ArgNum + 1
Wend

If (ArgRootDirectory = \"\") Or (ArgServerComment = \"\") Then
    if (ArgRootDirectory = \"\") then
        Response.Write \"Missing Root Directory\"
    else
        Response.Write \"Missing Server Comment\"
    end if
   
End If

Call ASTCreateWebSite(ArgIPAddress, ArgRootDirectory, ArgServerComment, ArgHostName, ArgPort, ArgComputers, ArgStart)

Sub ASTCreateWebSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum, Computers, Start)
    Dim w3svc, WebServer, NewWebServer, NewDir, Bindings, BindingString, NewBindings, ComputerIndex, Index, SiteObj, bDone
    Dim comp
    On Error Resume Next

    For ComputerIndex = 0 To UBound(Computers)
        comp = Computers(ComputerIndex)
        If ComputerIndex <> UBound(Computers) Then
            Trace \"Creating web site on \" & comp & \".\"
        End If

        \' Grab the web service object
        Err.Clear
        Set w3svc = GetObject(\"IIS://\" & comp & \"/w3svc\")
        If Err.Number <> 0 Then
            Display \"Unable to open: \"&\"IIS://\" & comp & \"/w3svc\"
        End If

        BindingString = IpAddress & \":\" & PortNum & \":\" & HostName
        Trace \"Making sure this web server doesn\'t conflict with another...\"
        For Each WebServer in w3svc
            If WebServer.Class = \"IIsWebServer\" Then
                Bindings = WebServer.ServerBindings
                If BindingString = Bindings(0) Then
                    Trace \"The server bindings you specified are duplicated in another virtual web server.\"
                End If
            End If
        Next

        Index = 1
        bDone = False
        Trace \"Creating new web server...\"

        \' If the user specified a SiteNumber, then use that.  Otherwise,
        \' test successive numbers under w3svc until an unoccupied slot is found
        If ArgSiteNumber <> 0 Then
            Set NewWebServer = w3svc.Create(\"IIsWebServer\", ArgSiteNumber)
            NewWebServer.SetInfo
            If (Err.Number <> 0) Then
                Response.Write \"Couldn\'t create a web site with the specified number: \" & ArgSiteNumber
            Else
                Err.Clear
                \' Verify that the newly created site can be retrieved
                Set SiteObj = GetObject(\"IIS://\"&comp&\"/w3svc/\" & ArgSiteNumber)
                If (Err.Number = 0) Then
                    bDone = True
                    Trace \"Web server created. Path is - \"&\"IIS://\"&comp&\"/w3svc/\" & ArgSiteNumber
                Else
                    Response.Write \"Couldn\'t create a web site with the specified number: \" & ArgSiteNumber
                End If
            End If
        Else
            While (Not bDone)
                Err.Clear
                Set SiteObj = GetObject(\"IIS://\"&comp&\"/w3svc/\" & Index)

                If (Err.Number = 0) Then
                    \' A web server is already defined at this position so increment
                    Index = Index + 1
                Else
                    Err.Clear
                    Set NewWebServer = w3svc.Create(\"IIsWebServer\", Index)
                    NewWebServer.SetInfo
                    If (Err.Number <> 0) Then
                        \' If call to Create failed then try the next number
                        Index = Index + 1
                    Else
                        Err.Clear
                        \' Verify that the newly created site can be retrieved
                        Set SiteObj = GetObject(\"IIS://\"&comp&\"/w3svc/\" & Index)
                        If (Err.Number = 0) Then
                            bDone = True
                            Trace \"Web server created. Path is - \"&\"IIS://\"&comp&\"/w3svc/\" & Index
                        Else
                            Index = Index + 1
                        End If
                    End If
                End If

                \' sanity check
                If (Index > 10000) Then
                    Trace \"Seem to be unable to create new web server.  Server number is \"&Index&\".\"
                End If
            Wend
        End If
        NewBindings = Array(0)
        NewBindings(0) = BindingString
        NewWebServer.ServerBindings = NewBindings
        NewWebServer.ServerComment = ServerComment
        NewWebServer.SetInfo

        \' Now create the root directory object.
        Trace \"Setting the home directory...\"
        Set NewDir = NewWebServer.Create(\"IIsWebVirtualDir\", \"ROOT\")
        NewDir.Path = RootDirectory
        NewDir.AccessRead = true
        Err.Clear
        NewDir.SetInfo
        NewDir.AppCreate (True)

        If (Err.Number = 0) Then
            Trace \"Home directory set.\"
        Else
            Display \"Error setting home directory.\"
        End If

        Trace \"Web site created!\"

        If Start = True Then
            Trace \"Attempting to start new web server...\"
            Err.Clear
            Set NewWebServer = GetObject(\"IIS://\" & comp & \"/w3svc/\" & Index)
            NewWebServer.Start
            If Err.Number <> 0 Then
                Display \"Error starting web server!\"
                Err.Clear
            Else
                Trace \"Web server started succesfully!\"
            End If
        End If
    Next
End Sub


Sub Display(Msg)
    Response.Write Now & \". Error Code: \" & Hex(Err) & \" - \" & Msg
End Sub

Sub Trace(Msg)
    if verbose = true then
        Response.Write Now & \" : \" & Msg   
    end if
End Sub

%>

</BODY>
</HTML>
Avatar billede jps2mt Nybegynder
11. januar 2001 - 19:12 #31
TP >> Det er den der Select Case der ligger øverst i scriptet jeg også har haft problemer med...
Avatar billede theportal Nybegynder
11. januar 2001 - 22:14 #32
Du kan jo bare hente det med en Querystring, f.eks. lav en form der submitter til den side, og hent dem via request.form/querystring f.eks:

\'OMKRING HER SKAL DU BEGYNDE AT FINDE UD AF HVORDAN DU VIL HENTE DINE ARGUMENTS, JEG HAR PRØVET AT HENTE DEM VIA EN QUERYSTRING, MEN DET VIRKEDE SQ IKKE HELT

ArgPort = Request.Form(\"1\")   
ArgIPAddress = Request.Form(\"2\")
ArgRootDirectory = Request.Form(\"3\")
ArgServerComment = Request.Form(\"4\")
ArgHostName = Request.Form(\"5\")
ArgComputers = Split(oArgs(ArgNum), \",\", -1) \'Denne her skal der nok leges lidt med
ArgSiteNumber = CLng(oArgs(ArgNum)) \'Denne her skal der nok leges med
ArgStart = = Request.Form(\"6\")
verbose = = Request.Form(\"7\")
Avatar billede jps2mt Nybegynder
02. februar 2001 - 11:51 #33
theportal >> Hvis du laver et svar, får du pointene...
Avatar billede theportal Nybegynder
03. februar 2001 - 14:22 #34
gimme those points, og hvis du har lyst må du gerne sende scriptet til mig på denne adresse: asp@theportal.dk

/TP
Avatar billede jps2mt Nybegynder
04. februar 2001 - 01:24 #35
theportal >> Det blev for langsomt med ASP, og gav konstant timeout, så jeg valgte at skrive alle kommandoer til en bat-fil, og lade serveren kigge efter den hver ½ time...
Avatar billede theportal Nybegynder
04. februar 2001 - 12:20 #36
ok!

Glad for at jeg kunne hjælpe!
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
Kurser inden for grundlæggende programmering

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