Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ukázka SimpleAjaxService ukazuje použití technologie Windows Communication Foundation (WCF) k vytvoření základní ASP.NET asynchronní služby JavaScript a XML (AJAX) (služba, ke které můžete přistupovat pomocí javascriptového kódu z klienta webového prohlížeče). Služba používá WebGetAttribute atribut k zajištění, aby služba reagovala na požadavky HTTP GET a je nakonfigurovaná tak, aby pro odpovědi používala datový formát JSON (JavaScript Object Notation).
Podpora AJAX ve WCF je optimalizovaná pro použití s ASP.NET AJAX prostřednictvím ScriptManager ovládacího prvku. Příklad použití WCF s ASP.NET AJAX najdete v ukázkách AJAX.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
V následujícím kódu se na operaci WebGetAttribute aplikuje atribut Add, aby služba reagovala na požadavky HTTP GET. Kód pro jednoduchost používá metodu GET (můžete vytvořit požadavek HTTP GET z libovolného webového prohlížeče). K povolení ukládání do mezipaměti můžete také použít get. HTTP POST je výchozí v případě absence atributu WebGetAttribute .
[ServiceContract(Namespace = "SimpleAjaxService")]
public interface ICalculator
{
[WebGet]
double Add(double n1, double n2);
//Other operations omitted…
}
Ukázkový soubor .svc používá WebScriptServiceHostFactory, který přidá standardní koncový bod do služby. Koncový bod je nakonfigurovaný na prázdnou adresu vzhledem k souboru .svc. To znamená, že adresa služby je http://localhost/ServiceModelSamples/service.svcbez dalších přípon kromě názvu operace.
<%@ServiceHost language="C#" Debug="true" Service="Microsoft.Samples.SimpleAjaxService.CalculatorService" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
Služba WebScriptEndpoint je předem nakonfigurovaná tak, aby byla přístupná ze stránky klienta ASP.NET AJAX. Následující část v Web.config se dá použít k provedení dalších změn konfigurace koncového bodu. Pokud nejsou potřeba žádné další změny, je možné ho odebrat.
<system.serviceModel>
<standardEndpoints>
<webScriptEndpoint>
<!-- Use this element to configure the endpoint -->
<standardEndpoint name="" />
</webScriptEndpoint>
</standardEndpoints>
</system.serviceModel>
Nastaví WebScriptEndpoint výchozí formát dat pro službu na JSON místo XML. K vyvolání služby přejděte na http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 po dokončení nastavení a kroků sestavení uvedených dále v tomto tématu. Tato testovací funkce je povolena pomocí požadavku HTTP GET.
Webová stránka klienta SimpleAjaxClientPage.aspx obsahuje ASP.NET kód pro vyvolání služby vždy, když uživatel klikne na jedno z provozních tlačítek na stránce. Tento ScriptManager ovládací prvek slouží k vytvoření proxy serveru do služby přístupného prostřednictvím JavaScriptu.
<asp:ScriptManager ID="ScriptManager" runat="server">
<Services>
<asp:ServiceReference Path="service.svc" />
</Services>
</asp:ScriptManager>
Místní proxy server je instanciován a operace se vyvolávají pomocí následujícího kódu JavaScript.
// Code for extracting arguments n1 and n2 omitted…
// Instantiate a service proxy
var proxy = new SimpleAjaxService.ICalculator();
// Code for selecting operation omitted…
proxy.Add(parseFloat(n1), parseFloat(n2), onSuccess, onFail, null);
Pokud volání služby proběhne úspěšně, kód vyvolá obslužnou rutinu onSuccess a výsledek operace se zobrazí v textovém poli.
function onSuccess(mathResult){
document.getElementById("result").value = mathResult;
}