我有一個經典的WCF web服務。幾個星期前,爲了迴應客戶的需求,我將休息管理添加到了我的web服務中。WCF + Xml-Rpc不起作用
但是,在一週的開始,另一個客戶端對我說,它的系統只能管理XML-RPC。所以他需要通過這個協議連接到我的web服務。
所以我發現這一點:Configuring XML-RPC behavior for IIS-hosted .SVC file?
首先,我才能將它添加到我的項目編制的Microsoft.Samples.XmlRpc。這兩個dll出現:Microsoft.Samples.XmlRpc & Microsoft.ServiceModel.XmlRpc
然後,我創建了一個XmlRpcEndpointBehaviorExtension類,與上面相同的帖子:
namespace WsZendesk
{
public class XmlRpcEndpointBehaviorExtension : BehaviorExtensionElement
{
protected override object CreateBehavior()
{
// this comes from Microsoft.Samples.XmlRpc
return new XmlRpcEndpointBehavior();
}
public override Type BehaviorType
{
get { return typeof(XmlRpcEndpointBehavior); }
}
}
}
後,我建立了我的界面基於XML RPC:
namespace WsZendesk
{
[ServiceContract]
public interface IWsZendeskRpc
{
[OperationContract(Action = "wszendesk.GetUserIdFromBarcode")]
void GetUserIdFromBarcode(String sXmlIn, out String sXmlOut);
}
}
Finaly,我修改我的web.config爲了讓RPC:
<system.serviceModel>
<services>
<service name="WsZendesk.WsZendesk" behaviorConfiguration="WsZendeskServiceBehavior">
<endpoint address="rest" behaviorConfiguration="restfulBehavior"
binding="webHttpBinding" bindingConfiguration="" name="RESTEndPoint"
contract="WsZendesk.IWsZendeskRest" />
<endpoint address="xmlrpc" behaviorConfiguration="xmlRpcBehavior"
binding="webHttpBinding" bindingConfiguration="" name="RPCEndPoint"
contract="WsZendesk.IWsZendeskRpc" />
<endpoint address="" behaviorConfiguration=""
binding="basicHttpBinding" bindingConfiguration="" name="SOAPEndPoint"
contract="WsZendesk.IWsZendesk" />
</service>
</services>
<extensions>
<behaviorExtensions>
<add name="xmlRpc"
type="WsZendesk.XmlRpcEndpointBehaviorElement, WsZendesk" />
</behaviorExtensions>
</extensions>
<behaviors>
<endpointBehaviors>
<behavior name="restfulBehavior">
<webHttp />
</behavior>
<behavior name="xmlRpcBehavior">
<xmlRpc />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WsZendeskServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Visual Studio說他不知道子元素'xmlRpc'。所以,當我嘗試啓動我的web服務時,在執行過程中出現相同的錯誤。
任何人都可以幫助我使用XML-RPC與我現有的web服務?
的信息,我的項目是在C#4
不同於論壇的網站,我們不使用「謝謝「或」任何幫助表示讚賞「,或簽名[so]。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) – 2014-09-25 14:42:55
「出現」的錯誤究竟是什麼?它出現在哪裏?你的意思是你得到一個異常嗎?那麼請發佈完整的異常。 – 2014-09-25 14:43:50
@John:對不起。它不會再出現了,我將編輯我的文章,截圖爲: – BaptX 2014-09-25 14:58:08