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

.NET Framework 4.8下IIS服务库中MimeKit 3.x系列异常求助

.NET Framework 4.8下MimeKit在IIS服务库中的异常问题排查

环境说明

  • 开发环境:Win10 + Visual Studio 2022 x64
  • 测试环境:Windows Server 2019 + IIS 10.0(17763.1)
  • 目标程序:运行于IIS的服务库 + Windows Form测试程序,均基于.NET Framework 4.8开发

问题1:MimeKit 3.3.0在IIS服务库中初始化MimeMessage失败

执行MimeMessage result = new MimeMessage();时抛出异常:

'MimeKit.ParserOptions'的类型初始值设定项引发异常。内部异常:'MimeKit.Utils.CharsetUtils'的类型初始值设定项引发异常。

已尝试的无效操作:

  • 添加System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
  • 开启项目所有配置的“允许不安全代码”
  • 确认System.Text.Encoding.CodePages版本为v6.0.0

注:同目录下的Windows Form测试程序可正常运行并发送邮件。


问题2:升级MimeKit/MailKit至3.4.0后测试环境服务库抛出程序集加载异常

开发环境正常,但测试环境创建MimeMessage时抛出异常:

'PerTypeValues`1'的类型初始值设定项引发异常。内部消息:无法加载文件或程序集'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'或其依赖项,找到的程序集清单定义与程序集引用不匹配。

已确认项目中System.Runtime.CompilerServices.Unsafe版本为6.0.0,同目录Windows Form程序仍正常运行。


问题3:重装NuGet包后出现System.Text.Encoding.CodePages版本冲突

移除所有NuGet包后重装MimeKit3.3.0、MailKit3.3.0、System.Text.Encoding.CodePages4.5.1,开发环境出现版本冲突提示:

There was a conflict between 
"System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and 
"System.Text.Encoding.CodePages, Version=4.5.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".

    "System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and 
    "System.Text.Encoding.CodePages, Version=4.5.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
    
    References which depend on "System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    [***\Development\Visual Studio\ac\AppSQL\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll].
    
        ***\Development\Visual Studio\ac\AppSQL\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll
          Project file item includes which caused reference "***\Development\Visual Studio\ac\AppSQL\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll".
            System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
    
    References which depend on "System.Text.Encoding.CodePages, Version=4.5.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [].
        ***\Development\Visual Studio\ac\AppSQL\packages\MimeKit.3.3.0\lib\net48\MimeKit.dll
          Project file item includes which caused reference "***\Development\Visual Studio\ac\AppSQL\packages\MimeKit.3.3.0\lib\net48\MimeKit.dll".
            MimeKit, Version=3.3.0.0, Culture=neutral, PublicKeyToken=bede1c8a46c66814, processorArchitecture=MSIL
            MailKit, Version=3.3.0.0, Culture=neutral, PublicKeyToken=4e064fe7c44a8f1b, processorArchitecture=MSIL  acAppSQLServerLibrary           

问题:找不到任何引用System.Text.Encoding.CodePages4.1.1.0的地方,该版本在NuGet中也不存在,需排查冲突原因。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:27:48