You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor服务器端使用含System.ServiceModel的DLL时触发FileNotFoundException

Blazor应用无法加载System.ServiceModel程序集的可能原因

以下是导致该问题的常见原因及对应说明:

  • 运行环境的本质差异
    若为Blazor WebAssembly应用,它运行在浏览器沙箱环境中,不支持传统.NET Framework中的WCF核心组件(即System.ServiceModel)。而控制台应用通常运行在完整的.NET Framework或.NET Core/.NET 5+的服务器/桌面环境中,天然具备加载该程序集的条件。

  • 目标框架与依赖包的差异
    .NET Core/.NET 5+之后,System.ServiceModel不再是系统默认内置程序集,需通过NuGet包(如System.ServiceModel.Primitives、System.ServiceModel.Http等)引入。如果自制DLL基于.NET Framework开发,而Blazor项目使用.NET Core/.NET 5+框架且未安装对应WCF相关NuGet包,就会出现找不到程序集的错误。

  • 依赖项未正确传递
    自制DLL引用了System.ServiceModel,但该依赖未正确传递到Blazor项目中。控制台应用可能自动处理了依赖项引用,而Blazor项目(尤其是WebAssembly)对依赖传递要求更严格,需显式在Blazor项目中安装对应的WCF NuGet包。

  • 程序集绑定配置问题
    .NET Framework中常用的程序集绑定重定向,在.NET Core/.NET 5+的Blazor项目中处理方式不同。如果自制DLL依赖特定版本的System.ServiceModel,但Blazor项目安装的NuGet包版本不匹配且未配置正确绑定规则,就会触发加载异常。

  • Blazor Server的特殊限制
    即使是Blazor Server应用,若项目未正确引用WCF相关NuGet包,或部署环境缺少对应程序集文件,也可能出现该错误。和控制台应用不同,Blazor Server的宿主环境(如IIS)对程序集加载策略有差异,无法自动找到未显式引用的依赖。

错误日志示例:

[2023-04-26T14:32:16.674Z] Error: System.IO.FileNotFoundException: Could not load file or assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Le fichier spécifié est introuvable.
File name: 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
[...] 

内容的提问来源于stack exchange,提问作者user21745694

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:07:10