微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么使用IIS7.5的Microsoft.Web.Management.dll只能在64位进程中工作?

我正在编写一些代码来允许用户远程pipe理IIS7。 在发动机罩下,这将授权规则添加到以下configuration部分下的c:windowssystem32inetsrvconfigadministration.config

system.webServer/management/authorization/authorizationRules

我正在使用Microsoft.Web.Administration程序集和名称空间,其代码类似于以下内容

using Microsoft.Web.Management.Server; ... ManagementAuthorization.Grant("MySiteUser,"My Web Site",false);

如果在32位进程中运行,则此代码将引发exception,如果构build为64位,则运行良好:

虚拟服务器/ EC2上的32位和64位操作系统

在64位操作系统上将Anycpu应用程序作为32位运行

64位Windows平台不成熟吗? (即使比较运行在其上的64位二进制文​​件的32位二进制文​​件)

在Windows上,wso2 esb部署失败

UMDF驱动程序的回环操纵杆设备

System.Runtime.InteropServices.COMException未处理

消息=文件名:\? C: Windows system32 inetsrv config administration.config

错误:configuration节“system.webServer / management / authorization”无法被读取,因为它缺less一个节声明

但是,使用Microsoft.Web.Administration程序集和名称空间执行的其他服务器pipe理任务在32位进程中工作得很好,例如:

using Microsoft.Web.Administration; .... int iisNumber = 60000; using (ServerManager serverManager = new ServerManager()) { var site = serverManager.Sites.Where(s => s.Id == iisNumber).SingleOrDefault(); if (site != null) { site.Stop(); } }

这两个程序集都出现在GAC中,并且是纯粹的MSIL(即使有一个COM互操作层直接与IIS7的底层pipe理机制对话)。

底层configuration文件applicationHost.config和administration.config只对64位编辑器(例如notepad.exe或NotePad2.exe)可见,我怀疑这就是为什么我的代码无法通过Microsoft.Web.Management修改administration.config Microsoft.Web.Management

为什么Microsoft.Web.Administration允许我在32位进程中读取/修改applicationHost.config ,但如果在64位进程中运行, Microsoft.Web.Management只能读取/修改administration.config

我无法将我的项目重新编译为目标x64,因为依赖于我们没有源代码的32位COM库。 我可以构build一个工作,这将涉及打电话给一个进程外64位WCF应用程序(或一些类似的东西),但不愿意。

PyGTK在Windows上找不到我的python 2.7文件

64位Windows上的OpenSSL

免费的Windows 64位C ++ 11编译器

如何检测Windows 64位的cpu速度?

启动64位Windows应用程序开发

经过一番挖掘,看起来这是一个错误

这个论坛主题和Carlos Aguilar的一篇文章解释了所有:

http://forums.iis.net/p/1157779/1956471.aspx

现在我明白了这个问题,卡西尼是一个32位进程,结合我们配置中的一个错误,使我们尝试加载“重定向”的syswow(而不是system32),这是我们无法找到的原因administration.config。 在64位的过程中运行缓解问题,因为没有“魔术”重定向,我们去正确的文件夹。

任何32位进程都会遇到这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐