我将 IIS 网站下托管的 WCF服务库写入其他网站的服务器请求。该服务具有名为编码的方法,用于对最终用户上传的视频文件进行编码。我使用以下程序集:
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是否在程序集文件夹中,但它们不是,所以我将它们更改为 GAC ,并且它们位于 GAC32 。我不得不这样做,因为当我将 WCF 发布到 IIS网站时,它将这些Dll写入bin文件夹,我无法添加服务引用。当我从 bin 文件夹中删除这些Dll时,我只能添加服务引用。 将这些Dll复制到GAC。
我还阅读了一些表明DLL平台和正在运行的应用程序平台之间存在冲突的文章。这意味着DLL是使用32位应用程序构建的,但正在运行的应用程序在64位应用程序等下运行。然后,我尝试将平台和框架设置为32和4.0,但是当我运行的应用程序将抛出错误添加服务参考。
我感到困惑,不知道问题的根源在哪里以及如何解决问题。