473,388 Members | 1,213 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,388 software developers and data experts.

Virtual Directory Detection #2

Thanks to Peter Bromberg for showing me how to detect if a virtual directory
exists. Now I need to determine what folder the virtual directory points to.

For example, I have the following C# code. It correctly finds the
'MyVirtualDirectory' virtual directory. Now, what method do I call to
determine what folder 'MyVirtualDirectory' points to? I cannot seem to find
any way to do this.

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");

Thanks very much.

Amos
Jan 13 '06 #1
7 4674
Amos Soma wrote:
For example, I have the following C# code. It correctly finds the
'MyVirtualDirectory' virtual directory. Now, what method do I call to
determine what folder 'MyVirtualDirectory' points to? I cannot seem
to find any way to do this.

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");


string path = virtualDirectory.Properties["Path"].Value.ToString();
--
Chris Priede
Jan 13 '06 #2
Chris,

This causes an 'Object reference not set to an instance of an object' error.
I don't think "Path" is a valid index into Properties.

AMos.

"Chris Priede" <pr****@panix.com> wrote in message
news:%2****************@TK2MSFTNGP15.phx.gbl...
Amos Soma wrote:
For example, I have the following C# code. It correctly finds the
'MyVirtualDirectory' virtual directory. Now, what method do I call to
determine what folder 'MyVirtualDirectory' points to? I cannot seem
to find any way to do this.

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");


string path = virtualDirectory.Properties["Path"].Value.ToString();
--
Chris Priede

Jan 13 '06 #3
Amos,
Chris's code is just fine. if you are getting and object reference exception
that's because your method call to DirectoryEntry isn't returning a
DirectoryEntry object.
Check your IIS pathing.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Amos Soma" wrote:
Chris,

This causes an 'Object reference not set to an instance of an object' error.
I don't think "Path" is a valid index into Properties.

AMos.

"Chris Priede" <pr****@panix.com> wrote in message
news:%2****************@TK2MSFTNGP15.phx.gbl...
Amos Soma wrote:
For example, I have the following C# code. It correctly finds the
'MyVirtualDirectory' virtual directory. Now, what method do I call to
determine what folder 'MyVirtualDirectory' points to? I cannot seem
to find any way to do this.

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");


string path = virtualDirectory.Properties["Path"].Value.ToString();
--
Chris Priede


Jan 13 '06 #4
Peter,

I don't think Chris's code is fine, or I am doing something wrong. Here is a
test method I wrote.
This method works fine up until the 'path =
virtualDirectory.Properties["Path"].Value.ToString()' line.
It then crashes. Alos, the 'foreach' statement does not show 'Path' as being
a property of 'Properties'.

Thanks very much.
private void TestVirtualDirectory()
{

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/SDBSClientUpdate");
System.DirectoryServices.PropertyCollection collection =
virtualDirectory.Properties;
string path;

foreach(string name in collection.PropertyNames)
MessageBox.Show(
string.Format("{0}:{1}",name,virtualDirectory.Prop erties[name].Value.ToString())
);

path = virtualDirectory.Properties["Path"].Value.ToString();
MessageBox.Show(path);
}
"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.com> wrote in message
news:6B**********************************@microsof t.com...
Amos,
Chris's code is just fine. if you are getting and object reference
exception
that's because your method call to DirectoryEntry isn't returning a
DirectoryEntry object.
Check your IIS pathing.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Amos Soma" wrote:
Chris,

This causes an 'Object reference not set to an instance of an object'
error.
I don't think "Path" is a valid index into Properties.

AMos.

"Chris Priede" <pr****@panix.com> wrote in message
news:%2****************@TK2MSFTNGP15.phx.gbl...
> Amos Soma wrote:
>> For example, I have the following C# code. It correctly finds the
>> 'MyVirtualDirectory' virtual directory. Now, what method do I call to
>> determine what folder 'MyVirtualDirectory' points to? I cannot seem
>> to find any way to do this.
>>
>> DirectoryEntry virtualDirectory = new
>> System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");
>
> string path = virtualDirectory.Properties["Path"].Value.ToString();
>
>
> --
> Chris Priede
>


Jan 13 '06 #5
Peter,

One thing I have learned. If the code below is run on a Windows XP
Professional box, an exception is thrown. If it's run on a Windows 2003
Server box, it works correctly.

Amos.

"Amos Soma" <am*********@yahoo.com> wrote in message
news:OL**************@TK2MSFTNGP09.phx.gbl...
Peter,

I don't think Chris's code is fine, or I am doing something wrong. Here is
a test method I wrote.
This method works fine up until the 'path =
virtualDirectory.Properties["Path"].Value.ToString()' line.
It then crashes. Alos, the 'foreach' statement does not show 'Path' as
being a property of 'Properties'.

Thanks very much.
private void TestVirtualDirectory()
{

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/SDBSClientUpdate");
System.DirectoryServices.PropertyCollection collection =
virtualDirectory.Properties;
string path;

foreach(string name in collection.PropertyNames)
MessageBox.Show(
string.Format("{0}:{1}",name,virtualDirectory.Prop erties[name].Value.ToString())
);

path = virtualDirectory.Properties["Path"].Value.ToString();
MessageBox.Show(path);
}
"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.com> wrote in message
news:6B**********************************@microsof t.com...
Amos,
Chris's code is just fine. if you are getting and object reference
exception
that's because your method call to DirectoryEntry isn't returning a
DirectoryEntry object.
Check your IIS pathing.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Amos Soma" wrote:
Chris,

This causes an 'Object reference not set to an instance of an object'
error.
I don't think "Path" is a valid index into Properties.

AMos.

"Chris Priede" <pr****@panix.com> wrote in message
news:%2****************@TK2MSFTNGP15.phx.gbl...
> Amos Soma wrote:
>> For example, I have the following C# code. It correctly finds the
>> 'MyVirtualDirectory' virtual directory. Now, what method do I call to
>> determine what folder 'MyVirtualDirectory' points to? I cannot seem
>> to find any way to do this.
>>
>> DirectoryEntry virtualDirectory = new
>> System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");
>
> string path = virtualDirectory.Properties["Path"].Value.ToString();
>
>
> --
> Chris Priede
>


Jan 13 '06 #6
I ran your code doing Console.WriteLine on each line of the foreach on a
Windows XP pro machine and here's what I got:

AppIsolated: 0
AppRoot: /LM/W3SVC/1/Root/Aspose.Excel.Demos
AppFriendlyName:
KeyType: IIsWebVirtualDir
Path: C:\Program Files\Aspose\Aspose.Excel\Demos\Aspose.Excel.Demos
AccessFlags: 513
FrontPageWeb: True
AspAllowSessionState: True
AspBufferingOn: True
AspEnableParentPaths: True
AspSessionTimeout: 20
AspScriptTimeout: 90
AspScriptErrorSentToBrowser: True
CacheISAPI: True
AspLogErrorRequests: True
AspExceptionCatchEnable: True
CGITimeout: 300
AspScriptEngineCacheMax: 125
AspMaxDiskTemplateCacheFiles: 1000
AspScriptFileCacheSize: 250
AuthFlags: 5
DirBrowseFlags: 1073741824
DontLog: False
ContentIndexed: True
AppAllowDebugging: True
AppAllowClientDebug: True
AspScriptLanguage: VBScript
AspScriptErrorMessage: An error occurred on the server when processing the
URL.
Please contact the system administrator.
AspDiskTemplateCacheDirectory: C:\WINDOWS\system32\inetsrv\ASP Compiled
Template
s
DefaultDoc: default.aspx,Default.htm,Default.asp
ScriptMaps: System.Object[]
HttpErrors: System.Object[]
CPUCGIEnabled: True
CPUAppEnabled: True
AnonymousPasswordSync: True
AspTrackThreadingModel: False
AspAllowOutOfProcComponents: True
AspEnableAspHtmlFallback: False
AspEnableChunkedEncoding: True
AspEnableTypelibCache: True
AspErrorsToNTLog: False
AspProcessorThreadMax: 25
AspRequestQueueMax: 3000
AspThreadGateEnabled: False
AspThreadGateTimeSlice: 1000
AspThreadGateSleepDelay: 100
AspThreadGateSleepMax: 50
AspThreadGateLoadLow: 50
AspThreadGateLoadHigh: 80
AspQueueTimeout: -1
AspCodepage: 0
AspKeepSessionIDSecure: False
AspEnableApplicationRestart: True
AspQueueConnectionTestTime: 3
AspSessionMax: -1
AspLCID: 2048
AnonymousUserName: IUSR_xxxx
AnonymousUserPass: xxxxxxxxxxx)
Realm: xxxxxx.com
HttpCustomHeaders: X-Powered-By: ASP.NET
--Peter
--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Amos Soma" wrote:
Peter,

One thing I have learned. If the code below is run on a Windows XP
Professional box, an exception is thrown. If it's run on a Windows 2003
Server box, it works correctly.

Amos.

"Amos Soma" <am*********@yahoo.com> wrote in message
news:OL**************@TK2MSFTNGP09.phx.gbl...
Peter,

I don't think Chris's code is fine, or I am doing something wrong. Here is
a test method I wrote.
This method works fine up until the 'path =
virtualDirectory.Properties["Path"].Value.ToString()' line.
It then crashes. Alos, the 'foreach' statement does not show 'Path' as
being a property of 'Properties'.

Thanks very much.
private void TestVirtualDirectory()
{

DirectoryEntry virtualDirectory = new
System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/SDBSClientUpdate");
System.DirectoryServices.PropertyCollection collection =
virtualDirectory.Properties;
string path;

foreach(string name in collection.PropertyNames)
MessageBox.Show(
string.Format("{0}:{1}",name,virtualDirectory.Prop erties[name].Value.ToString())
);

path = virtualDirectory.Properties["Path"].Value.ToString();
MessageBox.Show(path);
}
"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.com> wrote in message
news:6B**********************************@microsof t.com...
Amos,
Chris's code is just fine. if you are getting and object reference
exception
that's because your method call to DirectoryEntry isn't returning a
DirectoryEntry object.
Check your IIS pathing.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Amos Soma" wrote:

Chris,

This causes an 'Object reference not set to an instance of an object'
error.
I don't think "Path" is a valid index into Properties.

AMos.

"Chris Priede" <pr****@panix.com> wrote in message
news:%2****************@TK2MSFTNGP15.phx.gbl...
> Amos Soma wrote:
>> For example, I have the following C# code. It correctly finds the
>> 'MyVirtualDirectory' virtual directory. Now, what method do I call to
>> determine what folder 'MyVirtualDirectory' points to? I cannot seem
>> to find any way to do this.
>>
>> DirectoryEntry virtualDirectory = new
>> System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/MyVirtualDirectory");
>
> string path = virtualDirectory.Properties["Path"].Value.ToString();
>
>
> --
> Chris Priede
>



Jan 13 '06 #7
Hi,

Amos Soma wrote:
One thing I have learned. If the code below is run on a Windows XP
Professional box, an exception is thrown. If it's run on a Windows 2003
Server box, it works correctly.


What is the service pack level of your XP installation?

--
Chris Priede
Jan 14 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Zenobia | last post by:
I copy an application to wwwroot: wwwroot +--- myApp +--- common | +--- images | default.asp global.asa
2
by: Jeffry van de Vuurst | last post by:
Hi, (sorry for the crosspost, I wasn't sure which was the best place to put this). I was just thinking about something and wondered if any of you has some ideas about this. I'm using the...
5
by: Leszek | last post by:
Hello, Could anybody explain what's a difference between a virtual directory and an application root under IIS? I'm a little bit confused. This is mu problem: Let's assume the following...
2
by: Danny Miller | last post by:
Hi there, I'm facing a problem that is driving me nuts. The scenario is as follows: 1) Create an empty directory structure e.g. C:\Dev1\TestWebApp 2) Map a virtual directory e.g. TestWebApp...
4
by: david | last post by:
I basically use the following code to display the directory and file names in the WWWROOT, but can not show the virtual directory. ---- Dim path As String = Server.MapPath(x) Dim di As...
2
by: Amos Soma | last post by:
Anyone know how I can programatically detect whether a virtual directory exists on a machine my app is running on? And how to retrieve information about that virtual directory? Thanks very much....
8
by: wally | last post by:
There is a brilliant application that allows you to wrap your EXE and all associated DLLs, OCXs, etc. into a single executable and run the executable on Windows OSs with no install and nor...
6
by: ManagedCoder | last post by:
Hi, My requirement is as follows: I need to set the HttpExpires (enable content expiration - set to 7 days) on a folder within a virtual directory. I have been able to set the HttpExpires...
6
by: Scott M. | last post by:
I didn't get a resolution to this in my earlier post, so I'll try again: System: Windows XP Pro. (SP2) with IIS installed and running PRIOR to VS 2008 Pro. installation. VS 2008 Pro. (full...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.