2015-05-28 8 views
0

Я использую Visual Studio 2013, и я пытаюсь создать веб-сервис, используя сборку DNSTools из Nuance SDK. Мой WebMethod очень прост: я просто создаю объект из класса DNSTools, а затем возвращаю «Hello World».System.IO.FileLoadException с WebService

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, я не могу найти, какая сборка является корнем проблемы.

+0

DgnDictCustom - это объект [COM] (http://en.wikipedia.org/wiki/Component_Object_Model), который является ошибкой. Обратитесь к поставщику сборки – Liam

+0

ASMX является устаревшей технологией и не должен использоваться для новой разработки. WCF или ASP.NET Web API должны использоваться для всех новых разработок клиентов и серверов веб-сервисов. Один из намеков: Microsoft отстранила [ASMX Forum] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) в MSDN. –

ответ

0

Перейти к проекту Свойства и в закладке Build, выберите X86 для целевой платформы, и если это уже X86 изменение де 64

В VS - Свойства проекта - на вкладке Build - целевая платформа = X86