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

Virtual Directory Detection #2

P: n/a
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
Share this Question
Share on Google+
7 Replies


P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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 discussion thread is closed

Replies have been disabled for this discussion.