webForumDet fria alternativet

Litet problem med mapping

18 svar · 298 visningar · startad av Meng

MengMedlem sedan feb. 2003549 inlägg
#1
Mappen	= Server.MapPath("file://R:\Teknisk dokumentation 930.xxx")

Hur i tusan ska jag få denna att peka på
"R:\Teknisk dokumentation 930.xxx"
R drevet ligger på heter en server som heter Turbo9 i nätverket och IIS servern ligger på Turbo10. Hur ska jag göra? felet blir helatiden:

Server.MapPath() error 'ASP 0173 : 80004005' 
Invalid Path Character 

/teknisk/lista.asp, line 35 

An invalid character was specified in the Path parameter for the MapPath method.
@ndersMedlem sedan juni 200032 969 inlägg
#2

Bort med file://, du ska inte ange protokoll, utan bara sökväg.

Har du sett till att Turbo10\IUSR_Turbo10 har tillräckliga rättigheter på filen/mappen på Turbo9?

nikoMedlem sedan juni 20022 599 inlägg
#3
Mappen = "\\Turbo9\<utdelningsnamn>\Teknisk dokumentation 930.xxx"

Vad ska du med MapPath när du redan har en filsystemssökväg?

MogMedlem sedan nov. 2003266 inlägg
#4

Tror du kan glömma det, Server.MapPath visar bara sökvägen till din webbrot (rätta mig gärna om jag har fel).
Testa att skriva ut så får du se.

Response.Write(Server.MapPath("R:\Teknisk dokumentation 930.xxx"))

kommer inte att funka.

Response.Write(Server.MapPath("\"))

visar sökvägen till webbroten.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Som niko säger, droppa server.mappath() :)

MengMedlem sedan feb. 2003549 inlägg
#6

Det skulle vara till att displaya en mapp med tekniska dokument

Här koden iaf, finns de något annat sätt?


Mappen	= Server.MapPath("Z:/")

Set MappKoll	= Server.CreateObject("Scripting.FileSystemObject")
Set Mapp	= MappKoll.getFolder(Mappen)

PS = 9
       
   If Mapp.Files.Count Mod PS Then 
      Sidor = Mapp.Files.Count \ PS + 1 
   Else 
      Sidor = Mapp.Files.Count \ PS 
   End If
   Sida = Request.QueryString("sida")
   If Sida = "" Then 
       Sida = 1 
   End If  
    
   Start = (Sida - 1) * PS
   Slut = Start + PS

  If Mapp.Files.Count = 0 Then%>
       <tr> 
           <td>Ingen filer!</td> 
       </tr> 
   <%Else

   For Each File In Mapp.Files 

       bild = InStrRev(LCase(File.Name), "." ) 
       If bild < 1 Then bild = "" Else bild = Mid(LCase(File.Name),bild+1)

       If X < Start Then 
       ElseIf X < Slut Then%>
           <tr> 
              <td><%Response.Write(Server.MapPath("\"))%><a href="<%=Mappen%>/<%=File.Name%>" target="_blank"><%=File.Name%></b> - <%=Round(File.Size/1000, 1)%> kb</td>
           </tr> 
       <%Else 
          Exit For 
       End If 
       X = X + 1 
   Next
   End If
If Sidor > 1 Then%>

    <tr>
      <td height="2" width="100%" background="../include/images/bg_hr2.gif"></td>
    </tr>
<tr>
  <td>
<%For i = 1 To Sidor
    If  i = CInt(Sida) Then
        Response.Write "<b>" & i & "</b>"
    Else
        Response.Write " <a href=lista.asp?sida=" & i & ">" & i & "</a> "
    End If
Next%>
</td>
</tr>
    <tr>
      <td height="2" width="100%" background="../include/images/bg_hr2.gif"></td>
    </tr>
<%End If%>
    <tr>
      <td height="100%"></td>
    </tr>
<tr>
<td valign="bottom">
<table>
    <tr>
      <td height="2" width="100%" background="../include/images/bg_hr2.gif" colspan="2"></td>
    </tr>
  <tr>
    <td ><b>Vælj fil:</b> <input type="file" name="upload" size="35"></td><td><input type="submit" value="Gem"></td>
  </tr>
    <tr>
      <td height="2" width="100%" background="../include/images/bg_hr2.gif" colspan="2"></td>
    </tr>
</table>
</td>
</tr>
   <%If Session("mess") <> "" Then%>
   <tr>
      <td height="2" width="100%" background="../include/images/bg_hr2.gif"></td>
   </tr>
   <tr>
      <td align="center"><b>
        <%Response.Write Session("mess")
         Session("mess") = ""%></b></td>
   </tr>
   <%End If%>
</form> 
</table>
</td>
</tr>
</table>

</body>
</html>

<%If Request.QueryString("do") = "upload" Then

Response.Buffer=True
Response.Expires=0

	Set Upload    = Hamta_filer()
	files	= Upload("upload").Item("content")

        If MappKoll.FileExists(Mappen & "\" & extract_filename(Upload("upload").Item("filename"))) Then
              Session("mess") = "En fil med det namnet finns redan!"
              Response.Redirect "lista.asp"
        Else
               Set File	= MappKoll.CreateTextFile(Mappen & "\" & extract_filename(Upload("upload").Item("filename")))
        End If                        
	For i = 1 to LenB(files)
	      File.Write chr(AscB(MidB(files, i, 1)))
	Next
        Response.Redirect "lista.asp"
	File.Close: Set File	= Nothing

Function Hamta_filer()
		Set filer	= Server.CreateObject("Scripting.Dictionary")
		Binaries	= Request.BinaryRead(Request.TotalBytes)
		start		= 1
		slut		= InstrB(start, Binaries, hamta_strang_size(chr(13)))
		boundary			= MidB(Binaries, start, (slut - start))
		b_position		= InstrB(1, Binaries, boundary)
                
		Do Until (b_position = InstrB(Binaries, boundary & hamta_strang_size("--")))
			If Not(Response.IsClientConnected) Then Response.End

			start	= (InstrB(InstrB(b_position, Binaries, hamta_strang_size("Content-Disposition")), Binaries, hamta_strang_size("name=")) + 6)
			slut	= InstrB(start, Binaries, hamta_strang_size(chr(34)))

			name			= hamta_strang(MidB(Binaries, start, (slut - start)))
			pos_file		= InstrB(b_position, Binaries, hamta_strang_size("filename="))

			If  ((pos_file <> 0) AND (pos_file < InstrB(slut, Binaries, boundary))) Then
				filer.Add name, Server.CreateObject("Scripting.Dictionary")

				start	= (pos_file + 10)
				slut	= InstrB(start, Binaries, hamta_strang_size(chr(34)))
				filer.item(name).Add "filename", hamta_strang(MidB(Binaries, start, (slut - start)))

				start	= (InstrB(slut, Binaries, hamta_strang_size("Content-Type:")) + 14)
				slut	= InstrB(start, Binaries, hamta_strang_size(chr(13)))
				filer.item(name).Add "content-type", hamta_strang(MidB(Binaries, start, (slut - start)))

				start	= (slut + 4)
				slut	= InstrB(start, Binaries, boundary) - 2
				filer.item(name).Add "size", ((slut - start))
				filer.item(name).Add "content", MidB(Binaries, start, (slut - start))
			End If
			b_position	= InstrB(b_position + LenB(boundary), Binaries, boundary)
		Loop

		Set Hamta_filer = filer
	End Function

	Function hamta_strang_size(str)
		For cnt = 1 to Len(str)
			hamta_strang_size	= hamta_strang_size & chrB(AscB(Mid(str, cnt, 1)))
		Next
	End Function

	Function hamta_strang(str)
		For cnt = 1 to LenB(str)
			hamta_strang	= hamta_strang & chr(AscB(MidB(str, cnt, 1))) 
		Next
	End Function

	Function extract_filename(filename)
		extract_filename = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
	End Function
End If%>
nikoMedlem sedan juni 20022 599 inlägg
#7

Jag förstår egentligen inte frågan så jag får väl upprepa mig:

Mappen = "\\Turbo9\<det_namn_som_du_delat_ut_mappen_som>\"

Sen är ju länkar som denna lite skumma:

<a href="<%=Mappen%>/<%=File.Name%>" target="_blank">

men de lär funka lokalt på ett LAN.

MengMedlem sedan feb. 2003549 inlägg
#8

När jag pastar den riktigta fysiska adressen får jag detta felet:

Microsoft VBScript runtime error '800a004c' 
Path not found 

/teknisk/lista.asp, line 38

Mappen = "\\turbo9\arkiv\Teknisk dokumentation 930.xxx"
MogMedlem sedan nov. 2003266 inlägg
#9

Kan vara mellanslagen som spökar, testa med

Mappen = "\\turbo9\arkiv\Teknisk%20dokumentation%20930.xxx"

(om nu %20 står för mellanslag vilket jag har för mig).

nikoMedlem sedan juni 20022 599 inlägg
#10

När jag pastar den riktigta fysiska adressen får jag detta felet

Men om du får det felet så är det väl uppenbarligen inte den korrekta sökvägen?

Vad händer om du skriver "\\turbo9\arkiv\Teknisk dokumentation 930.xxx" i Start -> Kör på Turbo10? Öppnas mappen då?

MengMedlem sedan feb. 2003549 inlägg
#11

Nä båda de sakerna hade jag redan testat och det funkar när man använder adressen på turbo10 och ja det är "%20" för mellan slag och det funkar inte heller typiskt nog, ska testa att göra en vanligt href="\\turbo9\arkiv\Teknisk dokumentation 930.xxx" på turbo10 o sen vad som händer

nikoMedlem sedan juni 20022 599 inlägg
#12

ska testa att göra en vanligt href="\\turbo9\arkiv\Teknisk dokumentation 930.xxx" på turbo10 o sen vad som händer

Varför? Den länken kommer ju att öppnas från det konto som klientens webbläsare kör under och det har ingen relevans.

Din fråga handlar om NTFS-rättigheter och utdelningar på LAN vilket är svårt att felsöka "remote" och har väldigt lite med ASP att göra. Den absolut enklaste lösningen måste väl vara att be nätverksadministratören sätta upp rättigheter och utdelningar så att de blir korrekta och som du vill ha dem?

MengMedlem sedan feb. 2003549 inlägg
#13

Det funkade.. och kom det upp i 'utforskaren layout' so det ska.

<a href="\\turbo9\arkiv\Teknisk dokumentation 930.xxx">foo</a>
MengMedlem sedan feb. 2003549 inlägg
#14

Jag kan göra om det mesta efter behag, utom att byta namn på just den mappen, jag har fulla rättigheter till den och det har turbo10 också så jag fattar faktiskt inte var problemet ligger?

nikoMedlem sedan juni 20022 599 inlägg
#15

det har turbo10 också så jag fattar faktiskt inte var problemet ligger?

Maskiner har inga rättigheter i NTFS. Det är konton som har rättigheter. Vilka rättigheter har det konto som sidan lista.asp exekverar som? Som sagt ..

MengMedlem sedan feb. 2003549 inlägg
#16

Allså jag kör ju mot turbo10 med remote desktop, har ingen aning om hur man ska fixa det. Hj¨lper kanske med lite info om skiten vad vet jag? =)

Snackade just med nätverksteknikern, han hade inte direkt några ideér, hade man kunna göra en dns eller ip till just den mappen hade det ju funkat..

Turbo10:

Dell Poweredge 2650 med windows server 2003 med IIS

Turbo9

Dell Poweredge 2650 med windows server 2000

MengMedlem sedan feb. 2003549 inlägg
#17

Kollade rättigheterna på mappen: (TURBO\HV-Turbo) har läsning & körning, Visning av mappinnehåll och Läsning. Inget annat, TURBO är domänen. Men efter som "Alla" inte är med i denna listan så är det väl det som är felet? Eller kan jag lägga till Turbo10 i denna?

nikoMedlem sedan juni 20022 599 inlägg
#18

lista.asp exekverar under ett givet konto (om du använder Anonymous Access). Vilket detta konto är ser du om du högerklickar på filen i IIS-managern.

Metod 1: Se till att detta konto har tillräckliga rättigheter på mappen.
Metod 2: Byt detta konto till ett som redan har tillräckliga rättigheter på mappen.

Det är rätt elementärt och det bör en domän-/nätverksansvarig lyckas reda ut.

MengMedlem sedan feb. 2003549 inlägg
#19

IUSR_TURBO10 står det som användare, ska jag ge Tekniske 930.. mappen den profilen och med läs rättigheter?

135 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)