管家婆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>
原理:告诉 .NET 运行时,当程序请求 7.9.0.0 版本时,自动使用系统中已存在的 7.0.0.0 版本。

把 D9ERP 改成独立站点
-
在 IIS 左侧,右键 网站 → 添加网站
-
填写:
-
网站名称:
D9ERP -
物理路径:
D:\D9ERP\Program(注意是 Program 文件夹) -
端口:填你想要的,比如
889
-
-
确定后,把原来 Default Web Site 下的 D9ERP 应用程序删除(避免冲突)
-
访问地址变成:
http://localhost:889/(不用加/D9ERP)
删除旧的应用程序(避免冲突)
-
在 IIS 左侧,展开 Default Web Site
-
找到下面的 D9ERP(
-
右键 → 删除 或 移除

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

配置处理程序映射(关键!)
-
选中 D9ERP 站点 → 双击 处理程序映射
-
点击右侧 添加托管处理程序
-
请求路径:
.ajax -
类型:
Carpa.Web.Ajax.AjaxHandlerFactory, Carpa.Web -
名称:
ajax
-
-
再添加一个:
-
请求路径:
.gspx -
类型:
Carpa.Web.Script.ScriptHandler, Carpa.Web -
名称:
gspx
-

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



重启 IIS
以管理员身份打开 CMD:
iisreset
访问地址
http://localhost:889/
⚠️ 重要提醒
*.gspx 在其模块列表中有一个错误模块 ManagedPipelineHandler),说明 ASP.NET 注册有问题,在 CMD 执行:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
执行完再 iisreset。