M1 Mac Parallels的Win11 ARM环境下,IIS Express网站无法连接SQL Server LocalDB
问题分析与解决方案
核心原因
问题出在**.NET Framework 4.6.1网站的运行架构和LocalDB组件不兼容**:Win11 ARM环境下,.NET Framework网站默认可能以32位模式运行,而SQL LocalDB的SQLUserInstance.dll是ARM64架构,32位进程无法加载ARM64的DLL,就会抛出“%1 is not a valid Win32 application”错误。而WPF等应用直接以ARM64/AnyCPU模式运行,所以能正常加载组件。
具体解决办法
强制网站以ARM64架构运行
- 打开网站项目属性,切换到「生成」标签页,将「平台目标」改为
ARM64,同时取消勾选「首选32位」选项。 - 如果用IIS Express调试,找到项目根目录下的
.vs\config\applicationhost.config文件,找到对应站点的应用池配置,把enable32BitAppOnWin64属性改为false:<applicationPools> <add name="YourAppPoolName" enable32BitAppOnWin64="false" /> </applicationPools>
- 打开网站项目属性,切换到「生成」标签页,将「平台目标」改为
替换为SQL Server Express服务实例(推荐)
放弃LocalDB用户实例,改用完整的SQL Server Express(ARM64版本),修改连接字符串为:<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=XXX;Integrated Security=True" providerName="System.Data.SqlClient" />(如果数据库是分离状态,先附加到SQL Server Express服务中,再使用上述连接字符串)
调整IIS应用池设置(本地IIS部署时)
打开IIS管理器,找到网站对应的应用池,进入「高级设置」,将「启用32位应用程序」设置为False,确保应用池以ARM64模式运行。修复SQL Server LocalDB ARM64安装
卸载现有SQL Server LocalDB,重新下载安装ARM64版本的SQL Server LocalDB,安装完成后重启电脑,确保注册表中指向的SQLUserInstance.dll是ARM64版本的正确路径。
内容的提问来源于stack exchange,提问作者Eastlander
相关产品推荐
相关产品推荐

