Just nu i M3-nätverket
Jump to content

Lägga till HostHeader till Site.


FiEnD

Recommended Posts

Hej!

 

Jag har en site och till den siten vill jag kunna, via ett webbgränssnitt i ASP, lägga till hostheaders. Går det?

Jag har provat söka och leta i dokumentationer och referenser och söka på nätet, men hittar inget som behandlar frågan?

 

Tack på förhand. Mvh Fredrik

Link to comment
Share on other sites

Jag vet inte riktigt, men jag tror att det blev ett litet missförstånd.

 

Det jag vill göra är lägga till en hostheader till en site. Tex

 

foobar.foo.nu

snow.winter.com

www.hetabrev.se

 

osv.

De ska gå att administrera via Site Managern till IISen sen också.

 

Antar att det inte riktigt är så som Response.AddHeader funkar?

 

Mvh Fredrik

 

 

 

Link to comment
Share on other sites

Thomas Tydal

> Antar att det inte riktigt är så som

> Response.AddHeader funkar?

 

Nej, med AddHeader så kan du lägga till hostheader (och andra godtyckliga headers) på sidor som IIS skapar. Men vad du undrar är alltså hur du kan styra IIS' inställningar från asp, och det vet jag tyvärr inte.

 

 

Link to comment
Share on other sites

Precis. Jag vill kunna styra IIS inställningar för sidorna. Man kan lägga till virtuella kataloger, etc, men jag har inte hittat något för att lägga till en hostheader =/

 

*hmm*. Kanske måste ge upp den tanken. Hade varit smidigt att kunna göra det i ett webbaserat admingränssnitt.

 

 

 

Link to comment
Share on other sites

Med tanke på att det finns en webadmin för IIS går det nog utmärkt att göra.

 

Har dock inget exempel på hur det görs.

 

Du kanske till och med kan använda dig av IIS webadmin ?

 

 

Link to comment
Share on other sites

Magnus Ahlkvist

Set myWeb=GetObject("IIS://localhost/w3svc/1/root") ger dig ett object som du kan använda.

 

Gör en sökning i msnd.microsoft.com efter GetObject och IIS så hittar du troligen vad du vill göra.

 

Vet inte riktigt vilka egenskaper objektet du får tillbaka av ovanstående GetObject-operation har, men troligt är att det finns en Properties-collection som du kan kolla igenom och utifrån den klura ut hur du ska göra.

 

För att det här ska funka måste asp-filen som utför ändringen har administratörsrättigheter på webb-servern (under iis-inställningarna, directory-security, antingen genom att kryssa bort anonymous access eller genom att låta administrator eller annan administratör vara den anonyma användaren)

 

--

En röst talade till mig och sade:

"Le och var glad, ty det kunde vara värre".

Så jag log, och jag var glad.

Och det blev värre.

 

Link to comment
Share on other sites

Jao.. ungefär så långt kom jag också faktiskt. Problemet är att då jag letade på MSDN så hittade jag inget som kunde motsvara att lägga till just HostHeaders till en site.

Det gick superfint att lägga till virtuella kataloger, stanna och stoppa siten, mm.

Men just HostHeader hittade jag inte åt.

Antingen letade jag för dåligt, eller på fel ställe, eller så finns det inte inbyggt i IISADmin?

 

Tack ändå! :)

 

Mvh Fredrik

 

 

 

Link to comment
Share on other sites

Magnus Ahlkvist

Sådärja, då var det löst! :)

 

<%
set myWeb=GetObject("IIS://localhost/W3SVC/1")
dim myBindingList
dim newBindingList
myBindingList=myWeb.ServerBindings
if request("del")<>"" then
dim iNum
dim i
i=0
iNum=cint(request("del"))
redim newBindingList(ubound(myBindingList)-1)
do until i=iNum
	newBindingList(i)=myBindingList(i)
	i=i+1
loop
i=i+1
do until i>ubound(myBindingList)
	newBindingList(i-1)=myBindingList(i)
	i=i+1
loop
myWeb.ServerBindings=newBindingList
myWeb.SetInfo
Response.Redirect "browse.asp"
end if
dim hostname
hostname=request("hostname")
if hostname="" then
myBindingList=myWeb.ServerBindings
for i=0 to ubound(myBindingList)

	Response.Write myBindingList(i) 
	if ubound(myBindingList)<>0 then
		Response.Write "<a href='browse.asp?del=" &amp;amp;amp; i &amp;amp;amp; "'>del</a><br>"
	else
		Response.Write "<br>"
	end if
next
%>
<form action="browse.asp">
<input type="text" name="hostname"><input type="submit">
</form>
<%
else
redim newBindingList(ubound(myBindingList)+1)
for i=0 to ubound(myBindingList)
	newBindingList(i)=myBindingList(i)
next
newBindingList(ubound(myBindingList)+1)=":80:" &amp;amp;amp; hostname
myWeb.ServerBindings=newBindingList
'myWeb.ServerBindings=myBindingsList
myWeb.SetInfo
Response.Redirect "browse.asp"
end if
%>

--

En röst talade till mig och sade:

"Le och var glad, ty det kunde vara värre".

Så jag log, och jag var glad.

Och det blev värre.

 

[inlägget ändrat 2002-05-15 15:27:16 av Magnus Ahlkvist]

[inlägget ändrat 2002-05-15 15:27:56 av Magnus Ahlkvist]

[inlägget ändrat 2002-05-15 15:28:55 av Magnus Ahlkvist]

[inlägget ändrat 2002-05-15 15:30:04 av Magnus Ahlkvist]

Link to comment
Share on other sites

Hmm.. fick göra lite modifikationer utav ditt script innan jag fick det att fungera, men då det väl gick igång, så kunde jag lägga till något, men vad var det?

Inte HostHeaders iaf, för då jag lagt till tex "foobar" så fanns det ingen sån hostheader i min IIS då jag gick in på siten och kollade där.

 

myWeb.ServerBindings

Tror jag inte är rätt metod att använda här?

"This property specifies a string that is used by IIS to determine which network endpoints are used by the server instance. "

 

Tack ändå =)

 

Mvh Fredrik

 

 

Link to comment
Share on other sites

Magnus Ahlkvist

Ja, just Network Endpoints är vad en HostHeader är. Om du tittar på formatet i strängen så är det IP:PORT:HOSTNAME, vilket matchar med vad du fyller i när du definierar Host-Headers.

 

Prova följande:

<%

set myWeb=GetObject("IIS://localhost/W3SVC/1")

myWeb.ServerBindings=Array(":80:localhost",":80:foobar")

myWeb.SetInfo

%>

 

Får du inget resultat då är det något som inte står rätt till.

Jag har själv lyckats med att göra en webbsite oåtkomlig för mig själv på detta viset när jag provade genom att:

* Lägga till en host-header (vante)

* Använda mitt script för att ta bort den, men eftersom scriptet var lite kass skrivet av mig så tog den bort fel host-header, dvs den tog bort host-headern som såg ut ":80:", vilket alltså är en config för att lyssna på vilket namn som helst. vante var inte ett giltigt DNS-namn i i vårt nät, så det blev till att promenera ner till serverrummet :)

Men however, ServerBindings är just den egenskap du måste använda.

 

Btw - finns det fler webb-servers på din maskin, dvs finns det flera sajter? för i så fall stämmer sannolikt inte IIS://W3SVC/1, såvida det inte är default website du jobbar emot.

 

--

En röst talade till mig och sade:

"Le och var glad, ty det kunde vara värre".

Så jag log, och jag var glad.

Och det blev värre.

 

Link to comment
Share on other sites

Aha.. på det viset.

Tror jag förstår lite bättre nu. Är som sagt ganska ny på detta område och än så länge så är man inte för gammal för att lära sig något nytt? ;)

 

Jag tror att jag måset ändra från W3SVC/1 isåfall.. för den site jag tänker ändra har inte 1 som nummer. Skulle tro den ligger på 40 nåt sånt.

 

Visst borde man kunna loopa genom alla siter så man kan automatiskt klicka på en site som man vill jobba med och sen lägg in den från querystringen direkt istället för att hårdkoda in siten:) ?

 

Mvh Fredrik

 

 

 

Link to comment
Share on other sites

Magnus Ahlkvist

Yep, det ska gå att loopa igenom. Något i stil med:

dim i
i=1
On Error Resume Next
do until err.number<>0
Set myWeb=GetObject("IIS://W3SVC/" & i)
'Läs egenskaperna för objektet, 
'tror att du kan kolla i ex.vis 
'myWeb.ServerComment
If myWeb.ServerComment=någonsträngdusökerefter Then Exit DO
i=i+1
Loop
On Error Goto 0

 

Ovanstående läser tills den antingen hittar det du söker efter, eller tills ett felmeddelande kastas (tror att detta händer om GetObject inte hittar objektet man anger som argument).

 

--

En röst talade till mig och sade:

"Le och var glad, ty det kunde vara värre".

Så jag log, och jag var glad.

Och det blev värre.

 

Link to comment
Share on other sites

  • 2 weeks later...

du får nog aktivera den inbyggda FTP'n om du vill skapa mappar i din maskin utifrån.

 

 

Christopher Ekfeldt

www.ekfeldt.cc

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...