【问题标题】:System.IO.FileLoadException with WebServiceSystem.IO.FileLoadException 与 WebService
【发布时间】:2015-05-28 14:54:10
【问题描述】:

我正在使用 Visual Studio 2013,我正在尝试使用来自 Nuance SDK 的程序集 DNSTools 创建一个 Web 服务。我的 WebMethod 非常简单:我只是从 DNSTools 的类中创建一个对象,然后返回“Hello World”。

using DNSTools;
namespace WebTestFinal
{
    public class WebServiceTestFinal : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            DgnDictCustom dgn = new DgnDictCustom();
            return "Hello World";
        } 

但是当我到达终点线时:

DgnDictCustom dgn = new DgnDictCustom();

它抛出了这个错误:

System.IO.FileLoadException: Retrieving the COM class factory for component with CLSID {A0E850E3-91DB-11D1-96DC-0080C72FD13C} failed due to the following error: 8007045a. A dll initialization routine failed. (Exception of HRESULT : 0x8007045A).
 at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
 at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
 at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
 at System.Activator.CreateInstance(Type type, Boolean nonPublic)
 at System.Activator.CreateInstance(Type type)
 at WebTestFinal.WebServiceTestFinal.HelloWorld()

我做了一些研究,发现System.IO.FileLoadException 被抛出是因为无法加载程序集。尽管使用了 Fuslogvw.exe 和 Process Monitor,但我找不到哪个程序集是问题的根源。

【问题讨论】:

  • DgnDictCustom 是一个出错的COM 对象。联系组件供应商
  • ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:Microsoft 已停用 MSDN 上的 ASMX Forum

标签: c# .net web-services asmx assemblies


【解决方案1】:

转到项目属性并在构建选项卡中,选择 X86 作为平台目标,如果它已经是 X86,则将 de 更改为 64

在VS中-项目属性-构建选项卡中-平台目标=X86

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多