469,336 Members | 5,643 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,336 developers. It's quick & easy.

server.mappath and network shares

JR
My IIS Web site has a virtual directory called content mapped to a network
share. If the home directory of the Web site is c:\inetpub\wwwroot and the
virtual directory maps to the network share \\myserver\content,
Server.MapPath is returning c:\inetpub\wwwroot\content rather than
\\myserver\content.

I've tried adding
<identity impersonate="true" userName="name" password="password"/>

to the web.config file in order to make sure the identity of the account
accessing network resources has appropriate rights, but that doesn't change
the path returned by MapPath.

Does anyone know what's wrong?


Nov 18 '05 #1
5 6419
That is because Server.MapPath doesn't know anything about IIS's MetaData and where that actual path is located. Either you're going to have to hard code it in as a UNC path, or create some utility that will read the MetaData of IIS to get the actual physical location.

Matt Hawley, MCAD .NET
http://www.eworldui.net

My IIS Web site has a virtual directory called content mapped to a network
share. If the home directory of the Web site is c:\inetpub\wwwroot and the
virtual directory maps to the network share \\myserver\content,
Server.MapPath is returning c:\inetpub\wwwroot\content rather than
\\myserver\content.

I've tried adding
<identity impersonate="true" userName="name" password="password"/>

to the web.config file in order to make sure the identity of the account
accessing network resources has appropriate rights, but that doesn't change
the path returned by MapPath.

Does anyone know what's wrong?

Nov 18 '05 #2
JR
But converting a virtual path to a physical path is exactly what mappath
should do. It certainly does it for local files, and that requires reading
metadata.

I've seen other posts on the group that indicate it does work the way I want
it to for some people.

-Jay

"Matt Hawley" <mhawley@n!o!s!p!a!m.integrityts.com> wrote in message
news:OG****************@TK2MSFTNGP11.phx.gbl...
That is because Server.MapPath doesn't know anything about IIS's MetaData and where that actual path is located. Either you're going to have to hard
code it in as a UNC path, or create some utility that will read the MetaData
of IIS to get the actual physical location.
Matt Hawley, MCAD .NET
http://www.eworldui.net

My IIS Web site has a virtual directory called content mapped to a network share. If the home directory of the Web site is c:\inetpub\wwwroot and the virtual directory maps to the network share \\myserver\content,
Server.MapPath is returning c:\inetpub\wwwroot\content rather than
\\myserver\content.

I've tried adding
<identity impersonate="true" userName="name" password="password"/>

to the web.config file in order to make sure the identity of the account
accessing network resources has appropriate rights, but that doesn't change the path returned by MapPath.

Does anyone know what's wrong?


Nov 18 '05 #3
Hi Jay,

Thanks for your followup. Regarding on this issue, I've done a general test
on my side and found the Server.MapPath did return the UNCPath of the
remote server(where the asp.net files and assemlby actually locate). Here
are the detailed enviroment infos on my test:
1. Remote shared Machine: Win2k server with .net framework1.1 installed
shared one folder as the root folder of a certain web application.

2. Server Host Machine(where host the webapplication in IIS): WinXP
Professional with .net framework1.1 installed. And the two machines are in
the same domain so When creating the virutal directory on the XP box, I
paste the certain UNC path (\\servername\sharedfoldername) and then select
a DomainAccount which are administrator on both machine. Then, when I visit
the page in the web application and the page has the following code in
Page_Load:
Response.Write("<br>" + Server.MapPath("."));

Then, the output display the certain UNC path on the WIN2K
mathine((\\servername\sharedfoldername) rather than the physical path on
the WINXP BOX. I've also tried the contrary( share a folder on the XP box
and host the IIS Virutal Directory on the WIN2K machine, still use the
DomainAccount when accessing the UNC folder
in IIS manager).

So I think you may have a check on the above steps I listed to see whether
they can provide any clues. Also, I recommend that you also perform such a
test on your side to see whether it works. Thanks.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx


Nov 18 '05 #4
JR
Steven-

Rather than have the whole site located on a share from a remote machine,
can you create a Web site locally, then create a virtual directory under the
site that points to a remote machine share?

-Jay

"Steven Cheng[MSFT]" <v-******@online.microsoft.com> wrote in message
news:vn****************@cpmsftngxa06.phx.gbl...
Hi Jay,

Thanks for your followup. Regarding on this issue, I've done a general test on my side and found the Server.MapPath did return the UNCPath of the
remote server(where the asp.net files and assemlby actually locate). Here
are the detailed enviroment infos on my test:
1. Remote shared Machine: Win2k server with .net framework1.1 installed
shared one folder as the root folder of a certain web application.

2. Server Host Machine(where host the webapplication in IIS): WinXP
Professional with .net framework1.1 installed. And the two machines are in the same domain so When creating the virutal directory on the XP box, I
paste the certain UNC path (\\servername\sharedfoldername) and then select
a DomainAccount which are administrator on both machine. Then, when I visit the page in the web application and the page has the following code in
Page_Load:
Response.Write("<br>" + Server.MapPath("."));

Then, the output display the certain UNC path on the WIN2K
mathine((\\servername\sharedfoldername) rather than the physical path on
the WINXP BOX. I've also tried the contrary( share a folder on the XP box
and host the IIS Virutal Directory on the WIN2K machine, still use the
DomainAccount when accessing the UNC folder
in IIS manager).

So I think you may have a check on the above steps I listed to see whether
they can provide any clues. Also, I recommend that you also perform such a
test on your side to see whether it works. Thanks.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #5
Hi Jay,

In fact, my test is just Virutal Directory based rather than site based. I
just create a Virutal Directory under the local IIS's default site and set
its "Network Directory" path as a UNC path on another remote machine.
However, I think the key point should be the "Connect As.." account , I
used a PowerFull Domain account which has the administrator permission on
the remote machine. So I think we may have a further check on the
security. Do you think so? Thanks.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by JR | last post: by
11 posts views Thread by brett | last post: by
reply views Thread by suresh191 | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.