By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,701 Members | 1,970 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,701 IT Pros & Developers. It's quick & easy.

System.IO.FileNotFoundException using file.copy

P: n/a
I had previously posted this on the security ng, but haven't had a hit so I
was wondering if someone here would be willing to take a stab. I am trying
to copy a file to a network drive. I can do it on the web server but not
from a client. Here is the code:

Dim impersonationContext As
System.Security.Principal.WindowsImpersonationCont ext
Dim currentWindowsIdentity As System.Security.Principal.WindowsIdentity
currentWindowsIdentity
=CType(User.Identity,System.Security.Principal.Win dowsIdentity)
impersonationContext = currentWindowsIdentity.Impersonate()
dim Temp as string="TestFile"
File.Copy("\\MyServer\Template.doc", "\\MyServer\" & Temp &".doc")

impersonationContext.Undo()

I get the error "System.IO.FileNotFoundException: Could not find file
\\Server\File..." when running it from the [authenticated] client browser.
I searched everywhere on the web and MSDN on this error but found nothing.
The error it occurs on the file copy statement The file.copy statement is
trying to copy a file on a different server than the web server.

Any help is appreciated.

P.S. The web server is a backup domain w2k controller also, and the asp.net
user had to be changed to IWAM_Machine.
Nov 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
to copy to another server you need to impersonate a primary token, not an
impersonation. to quickly test this, on the actual server, run ie and test -
it should work because the principal will be a primary token, if not, turn
off anonymous.

to get around this, your code will need to logon as a domain account with
enough permission to do the copy.

-- bruce (sqlwork.com)

"Stephen Witter" <sw*****@enpathmed.com> wrote in message
news:#X**************@tk2msftngp13.phx.gbl...
I had previously posted this on the security ng, but haven't had a hit so I was wondering if someone here would be willing to take a stab. I am trying to copy a file to a network drive. I can do it on the web server but not
from a client. Here is the code:

Dim impersonationContext As
System.Security.Principal.WindowsImpersonationCont ext
Dim currentWindowsIdentity As System.Security.Principal.WindowsIdentity currentWindowsIdentity
=CType(User.Identity,System.Security.Principal.Win dowsIdentity)
impersonationContext = currentWindowsIdentity.Impersonate()
dim Temp as string="TestFile"
File.Copy("\\MyServer\Template.doc", "\\MyServer\" & Temp &".doc")

impersonationContext.Undo()

I get the error "System.IO.FileNotFoundException: Could not find file
\\Server\File..." when running it from the [authenticated] client browser.
I searched everywhere on the web and MSDN on this error but found nothing.
The error it occurs on the file copy statement The file.copy statement is
trying to copy a file on a different server than the web server.

Any help is appreciated.

P.S. The web server is a backup domain w2k controller also, and the asp.net user had to be changed to IWAM_Machine.

Nov 18 '05 #2

P: n/a
The funny thing is I have tried to run the process from every server, even
the one where the file resides (and where it is being copied to), and they
all give the same message, that is, that the file does not exist. The only
place it works is on the web server. Anonymous access is turn off on the web
site.

I added the following code to test it:

Dim FilePermission As New FileIOPermission(FileIOPermissionAccess.AllAccess,
"\\MyServer\MyShare\SomeDirectory\Template.doc ") FilePermission.Assert()
If System.IO.File.Exists("\\MyServer\MyShare\SomeDire ctory\Template.doc")
then
response.write("OK User: ") response.write(User.Identity.Name)
response.end
Else
Try
FilePermission.Demand()
response.write("Exists But Access Denied , User: ")
response.write(User.Identity.Name)
Catch se As Exception
response.write("Realy doesn't exist")
End Try
End If

It always returns "Exists But Access Denied , User: DOMAIN\User"

Thanks for your reply though. I know these situations can be caused by alot
of different factors.
"bruce barker" <no***********@safeco.com> wrote in message
news:u3**************@tk2msftngp13.phx.gbl...
to copy to another server you need to impersonate a primary token, not an
impersonation. to quickly test this, on the actual server, run ie and test - it should work because the principal will be a primary token, if not, turn
off anonymous.

to get around this, your code will need to logon as a domain account with
enough permission to do the copy.

-- bruce (sqlwork.com)

"Stephen Witter" <sw*****@enpathmed.com> wrote in message
news:#X**************@tk2msftngp13.phx.gbl...
I had previously posted this on the security ng, but haven't had a hit so
I
was wondering if someone here would be willing to take a stab. I am

trying
to copy a file to a network drive. I can do it on the web server but

not from a client. Here is the code:

Dim impersonationContext As
System.Security.Principal.WindowsImpersonationCont ext
Dim currentWindowsIdentity As

System.Security.Principal.WindowsIdentity
currentWindowsIdentity
=CType(User.Identity,System.Security.Principal.Win dowsIdentity)
impersonationContext = currentWindowsIdentity.Impersonate()
dim Temp as string="TestFile"
File.Copy("\\MyServer\Template.doc", "\\MyServer\" & Temp &".doc")

impersonationContext.Undo()

I get the error "System.IO.FileNotFoundException: Could not find file
\\Server\File..." when running it from the [authenticated] client browser. I searched everywhere on the web and MSDN on this error but found nothing. The error it occurs on the file copy statement The file.copy statement is trying to copy a file on a different server than the web server.

Any help is appreciated.

P.S. The web server is a backup domain w2k controller also, and the

asp.net
user had to be changed to IWAM_Machine.


Nov 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.