gpt4 book ai didi

c# - 无法加载文件或程序集 'Microsoft.Expression.Encoder'

转载 作者:行者123 更新时间:2023-11-30 15:24:50 24 4
gpt4 key购买 nike

我编写了一个托管在 IIS 网站 下的 WCF 服务库 来处理来自其他网站的服务器请求。该服务有一个名为Encode 的方法,用于对最终用户上传的视频文件进行编码。我使用以下程序集:

Microsoft.Expression.Encoder.Api2.dll, Microsoft.Expression.Encoder.dll, Microsoft.Expression.Encoder.Types.dll, Microsoft.Expression.Encoder.Utilities.dll,

我直接从控制台应用程序测试了编码功能。但是,当我通过 IIS 网站进行测试时,每当我调用 encode 方法时,总是会抛出以下错误。

{"Could not load file or assembly 'Microsoft.Expression.Encoder, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. An attempt was made to load a program with an incorrect format."}

我检查了那些Dll是否在Assembly文件夹中,没有,所以我将它们复制到GAC,它们在GAC32>。我不得不这样做,因为当我将 WCF 发布到 IIS 网站 时,它将那些 Dll 复制到 bin 文件夹,我无法添加服务引用。当我从 bin 文件夹中删除那些 Dll 时,我只能添加服务引用。将这些 Dll 复制到 GAC。

我还阅读了一些文章,指出 DLL 平台与运行应用程序的平台之间存在冲突。这意味着 DLL 是用 32 位应用程序构建的,但运行的应用程序是在 64 位应用程序下运行的,等等。然后我尝试将平台和框架相应地设置为 32 和 4.0,但是运行的应用程序会抛出错误我添加服务引用。

我很困惑,不知道问题的根源在哪里,如何解决。

更新:这是我的应用程序池: enter image description here

最佳答案

“尝试加载格式不正确的程序”,这部分为您提供了关键,当您尝试在 32 位进程中使用 x64 程序集时会发生这种情况,因此,您的 IIS 设置为32 位(默认情况下),使用 32 位 dll 或更改 IIS 配置以在 64 位模式下运行

关于c# - 无法加载文件或程序集 'Microsoft.Expression.Encoder',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32283043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com