我已經創建了WCF服務,我想從WCF服務返回數據庫記錄到客戶端。如何從WCF返回數據庫記錄
我的客戶端應用程序檢索該記錄顯示在網頁中。客戶端開發他們的應用程序任何平臺,如PHP或JAVA或.NET。他們使用我的WCF服務來獲取詳細信息。
如何使用XML或任何其他方法將數據從WCF服務返回到客戶端應用程序?
請給出建議/代碼片段,以解決我的疑問。
我已經創建了WCF服務,我想從WCF服務返回數據庫記錄到客戶端。如何從WCF返回數據庫記錄
我的客戶端應用程序檢索該記錄顯示在網頁中。客戶端開發他們的應用程序任何平臺,如PHP或JAVA或.NET。他們使用我的WCF服務來獲取詳細信息。
如何使用XML或任何其他方法將數據從WCF服務返回到客戶端應用程序?
請給出建議/代碼片段,以解決我的疑問。
如果您將WCF部署爲basicHttpBinding
將會將您的WCF服務公開爲傳統ASMX Web服務,以便舊客戶端可以使用新服務並使用SOAP協議(基於XML)公開您的數據。您也可以使用wsHttpBinding
(更高級)做類似的事情。我建議基本的,因爲你要從PHP,Java & NET中使用它。選擇更簡單可以爲你工作。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<!—- Default binding for basicHttpBinding -->
<basicHttpBinding>
<binding name="myBindingConfiguration1" closeTimeout="00:01:00" />
<binding name="myBindingConfiguration2" closeTimeout="00:02:00" />
<binding closeTimeout="00:03:00" />
</basicHttpBinding>
</bindings>
<services>
<!—- change to your namespace & contract details -->
<service name="MyNamespace.myServiceType">
<endpoint
address="myAddress" binding="basicHttpBinding"
bindingConfiguration="myBindingConfiguration1"
contract="MyContract" />
<endpoint
address="myAddress2" binding="basicHttpBinding"
bindingConfiguration="myBindingConfiguration2"
contract="MyContract" />
</service>
</services>
</system.serviceModel>
</configuration>
你可以採取更多信息here
您還可以配置WCF來公開數據作爲REST協議(WebHttpBinding
)。該選項限制WCF的功率。如果你打算從javascript中使用你的WCF,你可以嘗試一下。
您可以使用的最佳方法是使用WebHttpBinding爲RESTful WCF服務公開服務,該服務專爲可互操作的xml,json對話而設計。然後,任何客戶端都可以向端點發出HTTP請求並獲得普通的REST結果。這種技術的一個缺點是,你必須熟悉其在這裏描述http://msdn.microsoft.com/en-us/magazine/dd315413.aspx WCF REST風格的編程模型,你可以找到關於這一主題在這裏http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/90716451-fd29-4917-a5ca-f7f3bcaa96c9
第二種方法的全面論述,那你可能會喜歡更多的是因爲它的簡單性是使用BasicHttpBinding服務通過PHP內置SoapClient訪問。有一個很好的例子說明.Net數據類型傳輸到PHP客戶端。因此,您可以對數據使用相同的方法:Passing array of objects from WCF to PHP - extracting the info只需小心並使用[DataContract]/[DataMember]屬性正確設計您的數據合同類。
而下面的是PHP WCF/BasicHttpIntegration首發:http://cgeers.com/2009/08/20/using-wcf-services-with-php-5/
REST VS SOAP 這不是真的,REST限制WCF力量,它實際上做了一些先進的WCF功能,因爲大多的WebHttpBinding的侷限性。但是,反過來,REST比任何RPC協議更具互操作性,比如SOAP。另外,你會得到輕量級的JSON支持。 因此,您的決定取決於您的需求和系統的整體需求/體系結構。同意,如果您只需要向少數客戶端提供類似於對象的數據集(特別是如果它是本地系統,而不是通過互聯網發佈的話),那麼爲了簡單起見,BasicHttpBinding/SOAP是最適合您的。
還有一件事要說,很多Web服務都是RESTful或被轉換爲REST。微軟也是如此。這是將數據直接傳遞到客戶端瀏覽器的最佳方式(JS接手)。