2009-03-31 6 views
1

.NET 어셈블리를 통해 Interop/Navision과 COM을 사용하려고합니다. 특히 MSXML 인터페이스를 사용합니다. 그러면 다음 오류 메시지가 나타납니다.Com Interop (MSXML 포함)

"C : \ Users \ bra \ Documents \ Visual Studio 2008 \ Projects \ SOAPROXY \ SOAPROXY \ bin \ Release \ SOAPROXY.dll"어셈블리를 형식 라이브러리로 변환 할 수 없습니다. . 'SOAPROXY.ISoap.PostEnvelope (# 0), SOAPROXY'을 (를) 처리하는 중에 형식 라이브러리 내보내기에서 오류가 발생했습니다. 오류 : 형식 라이브러리 내보내기 'MSXML2.IXMLDOMDocument'형식을로드 할 수 없습니다 (오류 : System.IO.FileNotFoundException : 파일 또는 어셈블리 'Interop.MSXML2, 버전 = 6.0.0.0, 문화 = 중립, PublicKeyToken = fbdb4bb4a7dccef2'로드 할 수 없습니다 또는 해당 파일을 찾을 수 없습니다. 파일 이름 : 'Interop.MSXML2, Version = 6.0.0.0, Culture = neutral, PublicKeyToken = fbdb4bb4a7dccef2'). SOAPROXY

기본 인터페이스는

[Guid("some guid")] 
[ComVisible(true)] 
public interface ISoap 
{ 
    IStatus State { get; } 

    IXMLDOMDocument PostEnvelope(IXMLDOMDocument envelope, string action, string endpoint, string print, string store, string location); 
} 

[ClassInterface(ClassInterfaceType.None)] 
[ComVisible(true)] 
public class Soap : ISoap 
{ 
    ... 
} 

모든 단서가로 정의된다?

+0

귀하의 사용자 이름은 브래지어입니까? 얼마나 멋진가? 피터 안티 센이라고하는 사람을 아십니까? –

+0

그건 내 이메일 접두사 @ 일이야. Nope는 그 젠체하는 사람을 모른다. 나는 브래지어가 스웨덴어로 좋다는 것을 안다 ;-) Wonder-bra와 너는 무엇을 가지고있다! –

+0

아마도 [this] (http://msdn.microsoft.com/en-us/library/aa973247.aspx) MSDN 기사가 유용 할 수 있으며 NAV/COM interop을 설명합니다. –

답변

0

SOAP 웹 서비스를 통해 Navision과 이야기하고 싶은 것처럼 보입니다. 그렇게하고 싶다면 WCF (Windows Communication Foundation)와 같은 웹 서비스에 .NET의 기능을 사용해야합니다.

+0

그 반대의 경우입니다. Navision이 SOAP 웹 서비스에 대해 이야기하기를 원합니다. 이것이 내가 이것을 만든 이유입니다. –

+0

그리고 WCF는 옵션이 아닙니다. WSDL.exe 및 SvcUtil.exe 또는 해당 WSDL과 호환되지 않습니다. –

1

MSXML6에서 Interop 래퍼를 GAC 했습니까? 퓨전이 어셈블리를로드하는 데 실패하고 GAC 만 해결할 것이라고 생각합니다. 또는 Fusion로드 경로에 놓습니다.

그러나 SOAP 웹 서비스에 요청하기 위해 MSXML이 필요한 이유가 없습니다. .NET BCL에 내장 된 WebClient 광고 XmlDocument을 사용하지 않는 이유는 무엇입니까?

외부 웹 서비스에 연결하기 위해 Navision "확장 기능"(올바른 단어가 아님)을 작성하고 XML 또는 더 구체적으로 SOAP을 사용한다고 가정합니다. 또한 .NET에서 Navision 확장을 구축 할 수 있지만 wsdl.exe 또는 svcutil.exe를 사용할 수 없다고 가정하면 .NET에 내장 된 2 개의 웹 서비스 스택 용 도구가 제공됩니다. 그렇다면 .NET에서 사용할 수있는 하위 클래스의 HTTP 및 XML 클래스를 사용하는 것이 좋습니다.

COM interop이 전혀 필요하지 않습니다.