Nasıl yapılır: Yapılandırma Kullanmadan ASP.NET AJAX Uç Noktası Ekleme

Windows Communication Foundation (WCF), istemci Web sitesindeki JavaScript'ten çağrılabilen ASP.NET AJAX özellikli uç noktayı kullanıma sunan bir hizmet oluşturmanıza olanak tanır. Böyle bir uç nokta oluşturmak için, diğer tüm WCF uç noktaları gibi bir yapılandırma dosyası kullanabilir veya herhangi bir yapılandırma öğesi gerektirmeyen bir yöntem kullanabilirsiniz. Bu konu başlığında ikinci yaklaşım gösterilmektedir.

Yapılandırma olmadan ASP.NET AJAX uç noktalarıyla hizmet oluşturmak için, hizmetlerin Internet Information Services (IIS) tarafından barındırılması gerekir. Bu yaklaşımı kullanarak bir ASP.NET AJAX uç noktasını etkinleştirmek için . svc dosyasındaki @ServiceHost yönergesinde Factory parametresi olarak belirtinWebScriptServiceHostFactory. Bu özel fabrika, bir ASP.NET AJAX uç noktasını istemci Web sitesindeki JavaScript'ten çağrılabilecek şekilde otomatik olarak yapılandıran bileşendir.

Çalışan bir örnek için bkz . Yapılandırma olmadan AJAX Hizmeti.

Yapılandırma öğelerini kullanarak ASP.NET AJAX uç noktasını yapılandırmanın ana hattı için bkz . Nasıl yapılır: ASP.NET AJAX Uç Noktası Eklemek için Yapılandırmayı Kullanma.

Temel bir WCF hizmeti oluşturmak için

  1. özniteliğiyle ServiceContractAttribute işaretlenmiş bir arabirimle temel bir WCF hizmet sözleşmesi tanımlayın. Her işlemi ile OperationContractAttributeişaretleyin. özelliğini ayarladığınızdan Namespace emin olun.

    [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…  
    
    }  
    
  2. hizmet sözleşmesini ICalculator ile CalculatorServiceuygulayın.

    public class CalculatorService : ICalculator  
    {  
        public double Add(double n1, double n2)  
        {  
            return n1 + n2;  
        }  
    
    //Other operations omitted…  
    
  3. ve CalculatorService uygulamaları için ICalculator bir ad alanı bloğuna sarmalayarak bir ad alanı tanımlayın.

    Namespace Microsoft.Ajax.Samples  
    {  
        //Include the code for ICalculator and Calculator here.  
    }  
    

Hizmeti Internet Information Services'te yapılandırma olmadan barındırmak için

  1. Uygulamada .svc uzantısıyla service adlı yeni bir dosya oluşturun. Hizmet için uygun @ServiceHost yönerge bilgilerini ekleyerek bu dosyayı düzenleyin. WebScriptServiceHostFactory ASP.NET AJAX uç noktasını otomatik olarak yapılandırmak için @ServiceHost yönergesinde kullanılacağını belirtin.

    <%@ServiceHost
        language=c#
        Debug="true"
        Service="Microsoft.Ajax.Samples.CalculatorService"  
        Factory=System.ServiceModel.Activation.WebScriptServiceHostFactory  
    %>  
    
  2. Hizmeti derleyin ve istemciden çağırın. Internet Information Services (IIS), çağrıldığında hizmeti etkinleştirir. IIS'de barındırma hakkında daha fazla bilgi için bkz . Nasıl yapılır: IIS'de WCF Hizmeti Barındırma.

Hizmeti çağırmak için

  1. Uç nokta .svc dosyasına göre boş bir adreste yapılandırıldığından, hizmet artık kullanılabilir ve service.svc/<operation> adresine istek gönderilerek çağrılabilir. Örneğin, işlem için Add service.svc/Add. Hizmet URL'sini ASP.NET AJAX Betik Yöneticisi denetiminin Scripts koleksiyonuna girerek kullanabilirsiniz. Bir örnek için bkz . Yapılandırma olmadan AJAX Hizmeti.

Örnek

Otomatik olarak yapılandırılan uç nokta, temel URL'ye göre boş bir adreste oluşturulur. Bu yaklaşımla bir yapılandırma dosyası da eklenebilir ve kullanılabilir. Yapılandırma dosyasında uç nokta tanımları varsa, bu uç noktalar otomatik olarak yapılandırılan uç noktaya eklenir.

Örneğin, service.svc , ve hizmet dizinini kullanır WebScriptServiceHostFactory ve "soap" göreli adresinde kullanarak aynı hizmet BasicHttpBinding için bir uç nokta tanımlayan bir Web.config dosyası içerir. Bu durumda hizmet iki uç nokta içerir: biri service.svc (ASP.NET AJAX isteklerine yanıt veren) ve diğeri service.svc/soap adresinde (SOAP isteklerine yanıt veren).

Yapılandırma dosyası boş göreli adreste bir uç nokta tanımlarsa ve WebScriptServiceHostFactory kullanılırsa, bir özel durum oluşturulur ve hizmet başlatılamaz.

Otomatik olarak yapılandırılan uç noktadaki ayarları değiştirmek için yapılandırmayı kullanamazsınız. Herhangi bir ayarın (okuyucu kotası gibi) değiştirilmesi gerekiyorsa, .svc dosyasından öğesini kaldırarak WebScriptServiceHostFactory ve uç nokta için bir yapılandırma girişi oluşturarak yapılandırma gerektirmeyen yaklaşımı kullanmamalısınız.

Hizmetiniz ASP.NET Uyumluluk Modu gerektiriyorsa (örneğin, sınıfını veya ASP.NET yetkilendirme mekanizmalarını kullanıyorsa HttpContext ) bu modu açmak için bir yapılandırma dosyası gerekir. Gereken yapılandırma öğesi, aşağıdaki gibi eklenmesi gereken serviceHostingEnvironment öğesidir<.>

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> </system.serviceModel>

Daha fazla bilgi için WCF Hizmetleri ve ASP.NET konusuna bakın.

WebScriptServiceHostFactory sınıfı, türetilmiş bir sınıfıdırServiceHostFactory. Hizmet ana bilgisayarı fabrika mekanizmasının ayrıntılı açıklaması için ServiceHostFactory Kullanarak Barındırmayı Genişletme konusuna bakın.

Ayrıca bkz.