views:

308

answers:

3

I need to change the where a virtual directory's physical path is in C#. This is executed via an installer so it will be running on the machine where the virtual directory resides.

This is what I have so far:

 using (DirectoryEntry webSiteRoot = WmiUtility.GetWebSiteRootDirectory(webSite))
            {
                DirectoryEntry virtualDirectory =
                    WmiUtility.GetVirtualDirectoryByName(webSiteRoot, vDirName);

                string currentPath = virtualDirectory.Path;


                    virtualDirectory.Path = "C:\somepath"
                    srvMgr.CommitChanges();

It would appear that the VirtualDirectory.Path is not a physical one. Any help?

UPDATE:

virtualDirectory.Properties["Path"].Value = "c:\newlocation";

                    srvMgr.CommitChanges();

DirectoryEntry property "Path" contains the local, physical, location that I need to change. But for some reason the above does nothing. I don't see any exceptions but the properties value seems unchanged.

A: 

HttpServerUtility.MapPath('~/Virtual');

mrwayne
I think maybe you are thinking in terms of the web. This is code that is running local to web server hosting the application. In other words, this is not an ASP or Silverlight question.
Nick
Oops, my apologies! I thought you were trying to get the Path :)
mrwayne
+1  A: 

My Bad. I was committing changes on the ServerManager rather than on the VirtualDirectory.

virtualDirectory.CommitChanges();
Nick
A: 

May you please price me the WmiUtility

Awais