在 Vista 和 Vista 上启动网站时出现问题通过 .NET 的 IIS 7

发布于 2024-09-25 12:41:27 字数 492 浏览 3 评论 0原文

我需要通过 C# 以编程方式获取 IIS 网站状态。我通常这样做:

DirectoryEntry DE = new DirectoryEntry( string.Format( "IIS://localhost/W3SVC/{0}", siteID ) );
Int32 serverState = (Int32)DE.Properties["ServerState"][0];
if ( serverState == IISHelper.MD_SERVER_STATE_STOPPED )
     DE.Invoke("Start", new object[] { });

但此代码在 Windows Vista 上不起作用,即使站点正在运行并且 DE.Invoke("Start", new object[] { }) 抛出互操作异常,serverState 始终为 4(已停止) 。

如何在 Vista 上执行此操作?

谢谢。

I need to get IIS web-site state programmatically via C#. I usually do it this way:

DirectoryEntry DE = new DirectoryEntry( string.Format( "IIS://localhost/W3SVC/{0}", siteID ) );
Int32 serverState = (Int32)DE.Properties["ServerState"][0];
if ( serverState == IISHelper.MD_SERVER_STATE_STOPPED )
     DE.Invoke("Start", new object[] { });

But this code does't work on Windows Vista, serverState is always 4 (Stopped) even if the site is running and DE.Invoke("Start", new object[] { }) throws Interop exception.

How can i do this on Vista?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文