[英]Consume WCF service with same name and same target namespace from BizTalk
[英]How to consume WCF service from BizTalk 2010
我有一個需要從BizTalk編排中使用的Web服務。 我已經定義了在BizTalk中使用的消息模式,它們看起來像
<?xml version="1.0" encoding="utf-16"?>
<xs:schema
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns="http://www.myapp.com/schemas/IntegrationApplication-instance"
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
xmlns:ns0="https://DTIB.PropertySchema"
elementFormDefault="qualified"
targetNamespace="http://www.myapp.com/schemas/IntegrationApplication-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation=".\CommonTypes.xsd" />
<xs:element name="ProviderRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="Header" type="HeaderType" />
<xs:element name="Parameters" type="ParametersType" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
在WCF服務中,我定義了如下方法
public ProviderResponse Provide(ProviderRequest providerRequest) {...}
ProviderRequest
的定義如下
[DataContract(Namespace = "http://www.myapp.com/schemas/IntegrationApplication-instance")]
public class ProviderRequest
{
[DataMember]
public Header Header { get; set; }
[DataMember]
public Parameter[] Parameters { get; set; }
}
當我創建發送端口並嘗試發送ProviderRequest消息時,它會失敗,並顯示不同的錯誤。
使用與BizTalk項目中定義的模式相同的架構的WCF服務的最佳方法是什么?
最好的選擇是先運行服務實例,然后在Visual Studio中運行“添加生成的項目”->“使用WCF服務”。
這將生成您的服務消息XSD和端口類型,並且是您嘗試做的一種低摩擦的方法。
這是一個非常有趣的問題,可能會發生在其他人身上。
這里有一些建議。
最常見的情況:您需要使用一項服務,並希望使用這些消息-請使用休的建議“添加已生成的項目...”。
不太常見的情況:您已經創建了一個服務也要使用的架構(相同)-使用hugh的建議“添加生成的項目...”-刪除重復的架構,無論是您自己的架構還是從創建的架構中刪除
不太常見的情況:您想使用兩個使用相同架構的服務-使用休的建議“添加生成的項目...”-從生成的其中之一中刪除重復的架構
從未發生過我的案例:您已經創建了服務也使用的架構(不相同,但根名稱和名稱空間相同)-無需執行任何操作,這將不起作用(開箱即用)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.