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?
18 svar · 298 visningar · startad av Meng
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.
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?
Mappen = "\\Turbo9\<utdelningsnamn>\Teknisk dokumentation 930.xxx"
Vad ska du med MapPath när du redan har en filsystemssökväg?
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.
Som niko säger, droppa server.mappath() :)
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%>
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.
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"
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).
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?
Det funkade.. och kom det upp i 'utforskaren layout' so det ska.
<a href="\\turbo9\arkiv\Teknisk dokumentation 930.xxx">foo</a>
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?
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 ..
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
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?
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.
IUSR_TURBO10 står det som användare, ska jag ge Tekniske 930.. mappen den profilen och med läs rättigheter?