安装管家婆D9 V8.1到最后提示“未能加载文件或程序集“Microsoft.Web.Administration及打开提示处理程序“*.gspx”在其模块列表中有一个错误模块“ManagedPipelineHandler””的解决方法

管家婆D9安装报错

执行d:\D9ERP\InstalledConfig.exe:执行“d:\D9ERP\InstalledConfig.exe IIS”失败,结果:

错误:
未处理的异常: System.IO.FileLoadException: 未能加载文件或程序集“Microsoft.Web.Administration, Version=7.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
文件名:“Microsoft.Web.Administration, Version=7.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
在 InstalledConfig.AfterInstallConfig.SetIISPoolIdentity()
在 InstalledConfig.Program.Main(String[] args)

警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

在 CarpaERP.ConfigGuide.frmMain.RunExe(String exe, String args)

这个问题是管家婆D9安装时的经典兼容性故障。根本原因是:

InstalledConfig.exe 程序硬编码引用了 Microsoft.Web.Administration 版本 7.9.0.0,但这个版本通常来自 IIS Express 或特定的 Windows 更新;而 Windows Server 2016 完整安装 IIS 10 后,系统中只有 7.0.0.0 版本(完整 IIS 的版本),导致程序集版本不匹配,抛出 0x80131040 错误。

添加程序集绑定重定向

在 C:\D9ERP\ 目录下,创建 InstalledConfig.exe.config 文件,写入以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Web.Administration" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-7.9.0.0" newVersion="7.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
保存后,右键以管理员身份重新运行管家婆D9安装程序。
原理:告诉 .NET 运行时,当程序请求 7.9.0.0 版本时,自动使用系统中已存在的 7.0.0.0 版本。
这个文件看清楚一定要有字节,不要是空文件。
这样就能解决了。
如果是多管家婆软件就需要修改IIS站点比如D9和V3TOP在一起

把 D9ERP 改成独立站点

  1. 在 IIS 左侧,右键 网站 → 添加网站
  2. 填写:
    • 网站名称:D9ERP
    • 物理路径:D:\D9ERP\Program(注意是 Program 文件夹)
    • 端口:填你想要的,比如 889
  3. 确定后,把原来 Default Web Site 下的 D9ERP 应用程序删除(避免冲突)
  4. 访问地址变成:http://localhost:889/(不用加 /D9ERP)

删除旧的应用程序(避免冲突)

  1. 在 IIS 左侧,展开 Default Web Site
  2. 找到下面的 D9ERP(
  3. 右键 → 删除 或 移除

配置默认文档

  1. 选中新建的 D9ERP 站点
  2. 双击 默认文档
  3. 右侧点击 添加,输入:Default.gspx
  4. 再添加一个:Login.gspx
  5. 用箭头把它们移到最上面

配置处理程序映射(关键!)

  1. 选中 D9ERP 站点 → 双击 处理程序映射
  2. 点击右侧 添加托管处理程序
    • 请求路径:.ajax
    • 类型:Carpa.Web.Ajax.AjaxHandlerFactory, Carpa.Web
    • 名称:ajax
  3. 再添加一个:
    • 请求路径:.gspx
    • 类型:Carpa.Web.Script.ScriptHandler, Carpa.Web
    • 名称:gspx

设置文件夹权限

  1. 在资源管理器里,右键 D:\D9ERP 文件夹 → 属性 → 安全
  2. 点击 编辑 → 添加
  3. 输入 IIS_IUSRS 或
  4.  → 点击 检查名称 → 确定
  5. 赋予 完全控制 权限

重启 IIS

以管理员身份打开 CMD:

iisreset

访问地址

http://localhost:889/

⚠️ 重要提醒

如果添加完独立站点后,访问出现 HTTP 错误 500.21(处理程序 *.gspx 在其模块列表中有一个错误模块 ManagedPipelineHandler),说明 ASP.NET 注册有问题,在 CMD 执行:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

执行完再 iisreset。

上一篇 opencode使用cc switch的配置文件写法以及多服务商配置文件写法
下一篇 远程通FZ的安装过程