webForumDet fria alternativet

problem med en fso sökväg

ASP

15 svar · 535 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Min webroot ligger på D:. Hade tänkt att det skulle gå att använda FSO för att editera en fil som ligger på en uppmappad enhet. Är inte detta möjligt?
L:\test.txt sökvägen fungerar inte medans D:\aaa\bvv\dddd\test.txt gör det.

strFileName = "L:\test.txt"
'response.write(strFileName &"<br>")
'response.write(Server.MapPath("test.txt"))

' Instantiate the FileSystemObject
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

' use Opentextfile Method to Open the text File
[b]Set TS = objFSO.OpenTextFile(strFileName, ForReading, Create)[/b]

Microsoft VBScript runtime error '800a004c'

Path not found

/txtedit_view_file.asp, line 37

Medlem sedan juni 200032 967 inlägg
#2

Har verkligen IUSR den nätverksenheten uppmappad?

Medlem sedan maj 20012 080 inlägg
#3

På webservern är den nätverksenheten uppmappad. I filhanteraren får jag skapa filer manuellt.

Ska kontrollerar IIS rättigheterna...

Medlem sedan juni 200032 967 inlägg
#4

Jo, men är nätverksenheten uppmappad för IUSR?
Det skulle jag inte tro.
Nätverksenhetsuppmappningar torde vara upplagda specifikt för aktuell användare.

Medlem sedan maj 20012 080 inlägg
#5

Jag kör den som följande:

På webservern har jag tagit bort anonymous rättigheterna. När man accessar websidan i webläsaren får man upp en inloggningsruta där jag anger ett konto. I detta fall anger jag samma konto som jag använde när jag skapade min uppmappning.

Använder följande för att se vilket konto som sidan kör som:

Inloggad som: <%=  Request.ServerVariables("AUTH_USER") %> <p>

Ska jag felsöka mer på rättigheterna eller är det ett fel på sökvägen? Jag vet inte hur de olika VBscript runtime felmeddelanden ser ut...

Medlem sedan maj 20012 080 inlägg
#6

Hmmm... räcker det inte med att ge "everyone" full controll på filerna?

Path not found får jag hela tiden. Även när jag testar andra FSO skript. Någon som har fått FSO mot en nätverksdrive att fungera ????

Medlem sedan juni 200032 967 inlägg
#7

kan du inte peka på \\servernamn\share$\mapp istället då?

Medlem sedan maj 20012 080 inlägg
#8

Det hade ju varit jättebra. Klarar file system object av det ? Ska testa... :)

Medlem sedan maj 200010 687 inlägg
#9

Ja.

Medlem sedan maj 20012 080 inlägg
#10

Har surfat runt och letat. det skulle vara underbart att få ett litet exempel som fungerar.

Det som jag tycker är märkligt är att jag får köra tex:

filepath = "c:\"
response.write(filepath)
set fso = server.createobject("scripting.filesystemobject")
Set folder = fso.GetFolder(filepath)  
Set folderCollection = folder.SubFolders   
for each file in folder.files %>

<%= file.name %><br>

<% next%>

men inte...

filepath = "m:\"
response.write(filepath)
set fso = server.createobject("scripting.filesystemobject")
Set folder = fso.GetFolder(filepath)  
Set folderCollection = folder.SubFolders   
for each file in folder.files %>

<%= file.name %><br>

<% next%>

C:\ har knappast iisuser rättigheter att läsa (antar jag). Eller ?

Medlem sedan maj 20012 080 inlägg
#11

När jag håller mig inom webrooten så fungerar det. Antar att det har med rättigheterna att göra!?

Set folder = fso.GetFolder("\\webserver\intranet_webroot")

Medlem sedan maj 20012 080 inlägg
#12

Blir knasig på det här...

<% dim filesys, filetxt, getname, path 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.CreateTextFile("\\seupp-mattiasno\2)_Dumpsite\test.txt", True) 
path = filesys.GetAbsolutePathName("\\seupp-mattiasno\2)_Dumpsite\test.txt") 
getname = filesys.GetFileName(path) 
filetxt.WriteLine("Your text goes here.") 
filetxt.Close 
If filesys.FileExists(path) Then 
Response.Write ("Your file, '" &getname &"', has been created.") 
End If %>

Ger

Microsoft VBScript runtime error '800a0046'

Permission denied

/tab_offices/off_uppsala/it-support/script_edit_mta/txtedit_view_file.asp, line 37

<% dim filesys, filetxt, getname, path 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.CreateTextFile("z:\test.txt", True) 
path = filesys.GetAbsolutePathName("z:\test.txt") 
getname = filesys.GetFileName(path) 
filetxt.WriteLine("Your text goes here.") 
filetxt.Close 
If filesys.FileExists(path) Then 
Response.Write ("Your file, '" &getname &"', has been created.") 
End If %>

ger

Microsoft VBScript runtime error '800a004c'

Path not found

/tab_offices/off_uppsala/it-support/script_edit_mta/txtedit_view_file.asp, line 37

Det sista har jag inte brytt mig om men den första permission denied förstår jag inte. Tycker att jag har provat allt.

Det sensate jag provat är att ta bort anonymous rättigheterna för katalogen som innehåller aspfilerna. Detta tvingar fram en inloggningsdialog. I denna knappar jag in ett konto som bevisligen har rättigheter på den resurs jag försöker ansluta mig till.

Jag använder mig av:

Inloggad som: <b><%=  Request.ServerVariables("AUTH_USER") %></b> <p>

för att se att användarnamnet faktiskt stämmer. Denna returnerar: domännamnet\mattiasn vilket är korrekt.

Skapar jag en textfil med FSO i c:\temp\test.txt och kontrollerar vem som äger filen så är det rätt konto, dvs det som Request.ServerVariables("AUTH_USER") visar.

Men jag får fortfarande inte skriva i någon nätverks fileshare. Är det någon som har det att fungera någongång?

Det alternativa nobelpriset utlovas om tips kan ges

Medlem sedan dec. 19996 721 inlägg
#13

Sökvägen "\\seupp-mattiasno\2)_Dumpsite\test.txt" är lite suspekt

Medlem sedan maj 20012 080 inlägg
#14

Katalognamnet 2)_Dumpsite var kanske ett lite dummt val. Men katalogen heter faktiskt så och den går att accessa via en vanlig unc path (i windows).
Jag går nog bet på det här ...

Medlem sedan maj 200010 687 inlägg
#15

Som @nders säger så är nätverksenheten inte uppmappad för IUSR. Alltså kan inte den användaren komma åt z:.

Medlem sedan maj 20012 080 inlägg
#16
  1. Hur får man en lokal användare att ansluta sig till en nätverksresurs? När jag väljer "connect as a different user name" så har jag inte någon möjlighet att browsa fram något annat än AD konton. IISkontot är lokalt på webservern vad jag förstår. Skriver jag in det manuellt servernamn\iis_user + lösenord så klagar den på "Logon unsuccessful".

  2. Om jag använder mig av en UNC path som i inlägg #12 så borde väl inte ovan vara ett problem. När man sätter rättigheten "everyone" till full controll på filerna så innebär det väl att IIS user samt anonymous (alla) har rätt att accessa resursen utan att framtvinga en inloggning?
    UNC path lösningen är mer attraktiv om den fungerar.

Intressant det här. Det verkar ju som att flera av er har fått det att fungera.

Jag använder mig av webservern IIS 6.0 och den servern tillhör en AD domän. Datorn som jag vill ansluta mig till tillhör inte AD domänen utan är en fristående server. Har visserligen inte lyckats ansluta mig till något, varken domänmedlemmar eller ej.

279 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)