Forum

SQL Server'da Http ...
 
Bildirimler
Hepsini Temizle

SQL Server'da Http Endpoint Olusturarak IIS Olmadan WebServis Kullanmak

2 Yazılar
2 Üyeler
0 Reactions
1,447 Görüntüleme
(@bariscagri)
Gönderiler: 58
Estimable Member
Konu başlatıcı
 

Bir veri tabani uzmani, ya da programcisi olarak hiç ummadiginiz zamanlarda alakasiz durumlarla karsilasirsiniz. Bazen “ne isime yarayacak ki, ben zaten onu baska yollarla da yaparim” dediginiz sey karsiniza bir an da çikiverir. O olmazsa olmazdir.

 

Herhalde SqlServer 2005 ve sonrasinda gelen EndPoint ler az önce anlattigim durumlara örnek olarak verilebilir.

 

EndPoint nedir peki! Endpointler kullanicilarinizin(client) servislerinize nasil ulasacagini berlirleyen aracilardir. Dogal olarak URL seklinde olusurlar. WCF’in gündemimizi isgal etmeye baslamasiyla çogumuz bayagi ilgilenir olduk zaten.

 

Bu yazimda Stored Procedurelerimizi(artik SP diyecegim) EndPoint olarak nasil WebServis methodu gibi olusturacagimiza ve kullanacagimiza bakacagiz. Güzel yani IIS kurulu olmasi gibi bir derdiniz yok. Ama eger IIS ile Sql Server ayni portu dinliyorlarsa birinin default portunu degistirin ya da bu örnek için IIS’i durdurun.

 

1.ADIM: Öncelikle asagidaki gibi bir tablo olusturun


Siz varolan herhangi bir tablonuzu da kullanabilirsiniz.

 

2.ADIM: Asagidaki gibi bir SP olusturun.





CREATE proc [dbo].[kitapIsimleriniGetir]

as

begin

select ad from kitaplar

end

 

3.ADIM: Simdi sira endpointi olusturmaya geldi.





CREATE ENDPOINT KitaplarWebServisi

    STATE = Started

AS HTTP

 

    (

 

        PATH = '/Kitaplar',

 

        AUTHENTICATION = (INTEGRATED),

 

        PORTS = (CLEAR),

 

        SITE = '*'

 

    )

FOR SOAP

 

    (

 

        WEBMETHOD 'kitapIsimleriniGetir'

 

            (NAME = 'Kitaplar.dbo.kitapIsimleriniGetir'),

 

        WSDL = DEFAULT,

 

        DATABASE = 'Kitaplar',

 

        NAMESPACE = DEFAULT

 

    )

 

Burada “http” kisminda URL’in nasil olusturulacagi belirlenir. PATH = '/Kitaplar' localhost altinda “ http://localhost/kitaplar?wsdl ” seklinde bir URL olacagi anlamina gelir. Digerleri ise tamamen güvenlikle alakalidir.(Login,authentication mode, SSL vs.)

“SOAP” kisminda ise webMethodunuzun ismi, hangi SP’nin web method olarak kullanilacagi ve hangi veritabaninin kullanilacagi belirtilir.

Çalistirdiginiz zaman EndPointimiz SERVER OBJECTS altinda /EndPoints/SOAP/KitaplarWebServisi seklinde eklenecektir.

 

4.ADIM:  Artik yeni bir Visual Studio Projesi açip WebServis referansi yaparak olusturdugumuz WebServisi tüketebiliriz.

Ben bir Windows Forms Projesi olusturuyorum ve formum üzerine bir adet ComboBox kontrolü ekliyorum.



 

Sonra asagidaki adimlari takip ederek Web Servisi Referans ediyorum.

 

1.



 

2.



 

3. Web Servisiniz ve methodunuz geldikten sonra Add Reference butonuna tiklayarak projenize ekleyiniz.



 

5.ADIM: Formunuzun load eventine asagidaki kodlari yazarak web servisi tüketiniz.





using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

using WindowsFormsApplication25.Kitaplar;//EKLEMEYI UNUTMAYIN

 

namespace WindowsFormsApplication25

{

 

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            KitaplarWebServisi yeni = new KitaplarWebServisi();

 

            //Bu ismi EndPointi olustururken vermistik.

            yeni.Credentials = System.Net.CredentialCache.DefaultCredentials;

            DataTable dt = new DataTable("kitaplar");

            dt = (yeni.kitapIsimleriniGetir()[0] as DataSet).Tables[0];

 

            foreach (DataRow dr in dt.Rows)

            {

                comboBox1.Items.Add(dr["ad"].ToString());

            }

        }

    }

}

 

Sonuç:

Projenizi çalistirdiginizda sonuç asagidaki gibi olacaktir.

 

 
Gönderildi : 12/04/2010 17:03

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33311
Illustrious Member Yönetici
 

Merhaba Barış ;


Bu kadar ip ucundan sonra artık senden makale bekliyoruz 🙂

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 13/04/2010 11:56

Paylaş: