• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 709
  • Last Modified:

Permission Denied.

Thank You in advance
I have a page that works just fine for me. Nobody else can get to it. They get Permission Denied. I have the exact same right on the folder the file is being written to. The line that it is crashing on is:

set file = fso.CreateTextFile(thePath, true)

Does CreateTextFile use some dll or something to that effect. My nt account is set up the exact same and I have the same rights(change) on the folder where I am trying to create the text file.
Thank You,
Kent
0
kmurphy7
Asked:
kmurphy7
1 Solution
 
mgfranzCommented:
Make sure the IUSER_ has Write permission on the folder the text file is writing to.
0
 
jitgangulyCommented:
If
>>I have the exact same right on the folder the file is being written to

then my first guess would be thePath var with CreateTextFile.
Check the value of thePath, whetehr they have permission on to that folder.
thepath is in correct format etc.
Do a Response.write thePath and see the value
0
 
mgfranzCommented:
And of course, from MSDN;

Dim fso, MyFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
   MyFile.WriteLine("This is a test.")
   MyFile.Close
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
kmurphy7Author Commented:
Sorry, I forgot to note that Basic is turned on and Anonymous is turned off. Here is the full code.


Dim IniFileDictionary
set IniFileDictionary = CreateObject("Scripting.Dictionary")

Sub IniFileLoad(ByVal FilSpc)
  Dim PhyPth
  Dim FilSys
  Dim IniFil
  Dim StrBuf
  Dim HdrBuf
  Dim StrPtr
  Dim AltBuf
  IniFileDictionary.RemoveAll
  FilSpc = lcase(FilSpc)
  if left(FilSpc, 1) = "p" then
    'Physical path
    PhyPth = mid(FilSpc, instr(FilSpc, "=") + 1)
  else
    'Virtual path
    PhyPth = Server.MapPath(mid(FilSpc, instr(FilSpc, "=") + 1))
  end if

  set FilSys = CreateObject("Scripting.FileSystemObject")
  set IniFil = FilSys.OpenTextFile(PhyPth, 1)
  do while not IniFil.AtEndOfStream
    StrBuf = IniFil.ReadLine
    if StrBuf <> "" then
      'There is data on this line
      if left(StrBuf, 1) <> ";" then
        'It's not a comment
        if left(StrBuf, 1) = "[" then
          'It's a section header
          HdrBuf = mid(StrBuf, 2, len(StrBuf) - 2)
        else
          'It's a value
          StrPtr = instr(StrBuf, "=")
          AltBuf = lcase(HdrBuf & "|" & left(StrBuf, StrPtr - 1))
          do while IniFileDictionary.Exists(AltBuf)
            AltBuf = AltBuf & "_"
          loop
          IniFileDictionary.Add AltBuf, mid(StrBuf, StrPtr + 1)
        end if
      end if
    end if
  loop
  IniFil.Close
  set IniFil = nothing
  set FilSys = nothing
End Sub

Function IniFileValue(ByVal ValSpc)
  dim ifarray
  Dim StrPtr
  Dim StrBuf
  StrPtr = instr(ValSpc, "|")
  ValSpc = lcase(ValSpc)
  if StrPtr = 0 then
    'They want the whole section
    StrBuf = ""
    StrPtr = len(ValSpc) + 1
    ValSpc = ValSpc + "|"
    ifarray = IniFileDictionary.Keys
    for i = 0 to IniFileDictionary.Count - 1
      if left(ifarray(i), StrPtr) = ValSpc then
        'This is from the section
        if StrBuf <> "" then
          StrBuf = StrBuf & "~"
        end if
        StrBuf = StrBuf & ifarray(i) & "=" & IniFileDictionary(ifarray(i))
      end if
    next
  else
    'They want a specific value
    StrBuf = IniFileDictionary(ValSpc)
  end if
  IniFileValue = StrBuf
End Function



call IniFileLoad("virtual=Common/expenseReport.ini")
thePath = IniFileValue("SaveErs|Path") & "include.txt"

set fso = CreateObject("Scripting.FileSystemObject")
set file = fso.CreateTextFile(thePath, true)
file.WriteLine("Created on " & now)
file.Close


Thanks Again,
Kent
0
 
jitgangulyCommented:
What does thePath returns ? Did you check that ?
0
 
mgfranzCommented:
In VBScript, when you CreateObject, you must call out the Server property on the object;

set IniFileDictionary = Server.CreateObject("Scripting.Dictionary")

set FilSys = Server.CreateObject("Scripting.FileSystemObject")

Thats first.
0
 
mgfranzCommented:
Second of all, with Basic authentication, the logged in user must have Read/Write on the directory that the FSO is attempting to write to.
0
 
Michel SakrCommented:
permissions indeed..
0
 
lmredCommented:
I had the same problem today. I resolved it by making sure the path was not a network path. Example instead of "\\server\foldername\file", I put "d:\foldername\file".


lmred
0
 
mgfranzCommented:
As I said...

Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
0
 
WakieCommented:
It appears this question has been abandoned.

I will leave a recommendation in the Cleanup topic area that this question will be:

- Points to mgfranz -

Please leave any comments here within the next seven days.

DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

Wakie,
EE Cleanup Volunteer.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now