Microsoft 지원주기 내에서 사용하기 위해 BTS 2013에서 BTS 2009 프로젝트를 가져 와서 다시 컴파일하는 중입니다.BizTalk Server 2013 - ASMX에 대한 웹 참조 - BizTalk Expression Editor에서 사용할 수없는 응답의 요소
이것은 Windows XP의 BTS 2009, Visual Studio 2008을 사용하여 이전 개발자가 개발 한 후에 나중에 Windows 7로 옮겨졌습니다. 컴파일 된 솔루션은 Windows 2008 R2 서버에 배포됩니다. 이 연습에서는 Visual Studio 2013, Windows 7의 BizTalk Server 2013을 모두 최신 서비스 팩으로 사용하고 있습니다.
이 솔루션에는 스키마,지도, 파이프 라인 및 오케스트레이션에 대해 각각 하나씩 4 개의 프로젝트가 있습니다.
스키마 프로젝트는 .ASMX 웹 서비스를 '웹 참조'(서비스 참조 아님)로 참조합니다. ASMX의 응답 XML은 다음과 같습니다
오케스트레이션 중 하나에서<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GenerateSalesIDResponse xmlns="http://Company.Integration.SalesIDGenerator/">
<GenerateSalesIDResult>
<SalesID>string</SalesRefID>
<SalesIDInASCII>string</SalesRefIDInASCII>
<IsError>boolean</IsError>
<ErrorMessage>string</ErrorMessage>
<StackTrace>string</StackTrace>
</GenerateSalesIDResult>
</GenerateSalesIDResponse>
</soap12:Body>
</soap12:Envelope>
, 메시지 할당 모양이 표현은 다음과 같이이다 :
Msg_OrderOutputForHTML.Exception = Msg_SalesRefIDResponse.GenerateSalesIDResult.ErrorMessage;
Msg_OrderOutputForHTML.StackTrace = Msg_SalesRefIDResponse.GenerateSalesIDResult.StackTrace;
내 앞에서 문제는, 그 요소입니다 ErrorMessage
, StackTrace
및 위의 XML에있는 모든 형제 요소는 BizTalk 식 편집기에서 사용할 수 없습니다. Intellisense는 GenerateSalesIDResult
까지 작동하지만 그 이후의 XML 요소는 그렇지 않습니다.
오류 메시지는 - 내가 위해 무엇을해야 identifier 'StackTrace' does not exist in 'Msg_SalesIDReponse.GenerateSalesIDResult'; are you missing an assembly reference?
는이 문제를 해결하기 위해? 도와주세요.
주 - 내가 ASMX을 알고는 더 이상 사용하지 않는 것이 좋습니다,하지만 동등한 WCF 서비스로 변경하면
업데이트 1 :-) 내 부분에 비 기술적 많은 노력이 필요합니다 :
<?xml version="1.0"?>
<xs:schema xmlns:tns="http://Company.Integration.SalesIDGenerator/" elementFormDefault="qualified" targetNamespace="http://Company.Integration.SalesIDGenerator/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SalesIDGen" nillable="true" type="tns:SalesIDGen" />
<xs:complexType name="SalesIDGen">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="SalesID" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="SalesIDInASCII" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="IsError" type="xs:boolean" />
<xs:element minOccurs="0" maxOccurs="1" name="ErrorMessage" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="StackTrace" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
업데이트 2 : 같은 프로젝트 내가 VS2008에서 열 경우,하지 않는 시간
Reference.xsd은 다음과 같습니다 이 문제를 피하십시오.
같은 것을 당신은 내가 원래 질문에 대한 업데이트에 Reference.xsd의 내용을 추가 한 @Gruff 감사 할 것이다. 웹 참조를 제거하고 다시 추가했습니다. VS2013을 닫았다가 다시 열고, 솔루션과 프로젝트를 정리했습니다. 그 후에도 오류가 남아 있습니다. – FMFF
불행히도 BizTalk 개발을 위해 아직 VS2013을 사용하지 않았습니다. 웹 참조 생성기가 Reference.map.cs 파일을 생성하고 액세스하려는 요소가'DistinguishedFieldAttribute'로 표시되어 있는지 확인할 수 있습니까? 나는 당신의 열독을 위해 메시지 내용에 접근하는 다른 방법으로 대답을 업데이트했다. – Gruff
네,'Reference.map.cs' 파일에는'public partial class'가 있으며, 모든 요소는'Microsoft.XLANGs.BaseTypes.DistinguishedFieldAttribute()'로 표시되어 있습니다. – FMFF