作法:使用組態新增 ASP.NET AJAX 端點
Windows Communication Foundation (WCF) 可讓您建立服務以提供啟用 ASP.NET AJAX 的端點,並可在用戶端網站上透過 JavaScript 來呼叫此端點。 若要建立此類端點,您可以使用組態檔 (與建立其他所有 Windows Communication Foundation (WCF) 端點一樣),或是使用不需要任何組態項目的方法。 本主題示範組態方法。
讓服務端點成為啟用了 ASP.NET AJAX 的程序部分包含設定端點以使用 WebHttpBinding 並新增 <enableWebScript> 端點行為。 設定好端點之後,實作與裝載服務的步驟與其他 WCF 服務所採用的步驟很類似。 如需實用範例,請參閱使用 HTTP POST 的 AJAX 服務。
如需如何在不使用組態的情況下設定 ASP.NET AJAX 端點的詳細資訊,請參閱如何:不使用組態新增 ASP.NET AJAX 端點。
若要建立基本 WCF 服務
使用以 ServiceContractAttribute 屬性標記的介面來定義基本的 WCF 服務合約。 以 OperationContractAttribute 標記每項作業。 請務必設定 Namespace 屬性。
[ServiceContract(Namespace = "MyService")] public interface ICalculator { [OperationContract] // This operation returns the sum of d1 and d2. double Add(double n1, double n2); //Other operations omitted… }
使用
ICalculator
來實作CalculatorService
服務合約。public class CalculatorService : ICalculator { public double Add(double n1, double n2) { return n1 + n2; } // Other operations omitted… }
定義
ICalculator
和CalculatorService
實作的命名空間,方法是將它們包裝在命名空間區塊中。namespace Microsoft.Ajax.Samples { //Include the code for ICalculator and Calculator here. }
若要建立服務的 ASP.NET AJAX 端點
針對服務中啟用了 ASP.NET AJAX 的端點,建立行為組態並指定 <enableWebScript> 行為。
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="AspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel>
針對使用 WebHttpBinding 和 ASP.NET AJAX 行為 (上一個步驟中所定義) 的服務,建立其端點。
<system.serviceModel> <services> <service name="Microsoft.Ajax.Samples.CalculatorService"> <endpoint address="" behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding" contract="Microsoft.Ajax.Samples.ICalculator" /> </service> </services> </system.serviceModel>
若要在 IIS 中裝載服務
若要在 IIS 中裝載服務,請在應用程式中建立一個名為 service 且副檔名為 .svc 的新檔案。 您可以為服務新增適當的 @ServiceHost 指示詞,來編輯這個檔案。 例如,
CalculatorService
範例中的服務檔案內容包含下列資訊。<%@ServiceHost language=c# Debug="true" Service="Microsoft.Ajax.Samples.CalculatorService" %>
如需在 IIS 中裝載的詳細資訊,請參閱如何:在 IIS 中裝載 WCF 服務。
若要呼叫服務
- 端點會在相對於 .svc 檔案的空白位址上設定,因此服務現在可以使用,而且可藉由將要求傳送至 service.svc/<operation> 來叫用。例如,
Add
作業的 service.svc/Add。 您可以將端點 URL 輸入 ASP.NET AJAX 指令碼管理員控制項的指令碼集合來加以使用。 如需範例,請參閱使用 HTTP POST 的 AJAX 服務。