Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özet
Bu adım adım makalede, ASP.NET kullanarak Microsoft Access örnek Northwind veritabanından veri alan ve istemci hizmetin bir yöntemini çağırdığında verileri bir istemciye XML olarak döndüren basit bir XML Web hizmeti oluşturma adımları açıklanmaktadır. İstemci tarafında, veriler Office PivotTable ve Grafik bileşenleriyle sunulur. Bu makalede ayrıca Visual Basic .NET veya Visual Basic 6.0 kullanarak XML Web hizmeti için istemci oluşturma işlemi de gösterilmektedir.
ASP.NET kullanarak basit bir XML Web hizmeti oluşturma
Visual Studio'yu başlatın. Net.
Dosya menüsünde Yeni'ye ve ardından Proje'ye tıklayın. Proje türleri'nin altında Visual Basic Projeleri'neASP.NET tıklayın ve ardından
****Şablonlar'a bakın. Form1 varsayılan olarak oluşturulur.
Konumhttps://localhost/MyDataService olarak değiştirin ve Tamam'a tıklayın. XML Web hizmeti projesi yerel bilgisayarda MyDataService adıyla oluşturulur. System.Web.Services.WebService'ten devralan Sınıf Service1, Service1.asmx dosyasında varsayılan olarak oluşturulur.
Çözüm Gezgini'da Service1.asmx öğesine sağ tıklayın ve Kodu Görüntüle'yi seçin. Bu, .asmx sayfasının arka planda kod dosyasını görüntüler.
Microsoft ActiveX Veri Nesneleri kitaplığına başvuru ekleyin. Bunu yapmak için şu adımları uygulayın:
- Proje menüsünde Başvuru Ekle'ye tıklayın.
- COM sekmesine tıklayın, Microsoft ActiveX Veri Nesneleri 2.7 Kitaplığı'nı seçin, Seç'e ve ardından Tamam'a tıklayın.
Sınıf Hizmeti1'e aşağıdaki yöntemi ekleyin:
<WebMethod()> Public Function GetResultsAsAdoXML() As String Dim myAdoRs As ADODB.Recordset Dim myAdoConnection As New ADODB.Connection() Dim mypersiststream As New ADODB.Stream() Dim myConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb" Dim mySelect As String = "SELECT * from [Category Sales for 1997]" myAdoConnection.ConnectionString = myConnectionString myAdoConnection.Open() myAdoRs = myAdoConnection.Execute(mySelect) myAdoRs.Save(mypersiststream, ADODB.PersistFormatEnum.adPersistXML) Return mypersiststream.ReadText End Function
Not
Office XP'yi varsayılan klasöre (C:\Program Files\Microsoft Office) yüklemediyseniz, koddaki bağlantı dizesini Office yüklemenizin doğru yolunu yansıtacak şekilde değiştirin. Ayrıca, Office 2003'ü yüklediyseniz yolu buna göre değiştirmeniz gerekebilir.
Derle menüsünde Çözüm Oluştur'a tıklayarak XML Web hizmetini derleyin.
XML Web Hizmetinizi Test Edin
- Hata Ayıkla menüsünde Başlat'a tıklayın. Microsoft Internet Explorer başlatılır ve Service1.asmx dosyasına göz atar.
- GetResultsAsAdoXML köprüsüne tıklayın.
- Yöntem çağrısını test etmek için Çağır'a tıklayın. Yeni bir pencere, 1997 Için Kategori Satışları sorgusunun sonuçlarını XML satır kümesi şema biçiminde görüntüler. Satır kümesi XML belgesi dize öğesinin içine alınır.
- Visual Studio .NET'teki Hata Ayıkla menüsünde Hata Ayıklamayı Durdur'a tıklayın.
XML Web Hizmetiniz için İstemci Oluşturma
Bu bölümde, MyDataService XML Web hizmetini kullanacak bir istemcinin nasıl oluşturulacağı açıklanmaktadır. İstemcinizi Visual Basic 6.0 veya Visual Basic .NET ile oluşturabilirsiniz.
Tanıtım amacıyla, adımlarda test istemcisinin XML Web hizmetiyle aynı bilgisayarda nasıl derlediği açıklanır. Ancak, test istemcilerinizi Web hizmetinin kullanıma sunabileceği Web Hizmetleri Açıklama Dili (WSDL) dosyasına göz atabilen herhangi bir bilgisayarda oluşturabilirsiniz.
Visual Basic .NET kullanma
Yeni bir Visual Basic .NET Windows Uygulaması projesi oluşturun. Form1 varsayılan olarak oluşturulur.
Araç Kutusunu görüntülemek için CTRL+ALT+X tuşlarına basın.
Araçlar menüsünde Araç Kutusunu Özelleştir'e tıklayın. Bileşenler listesinde aşağıdaki öğeleri seçin ve ardından Tamam'a tıklayın:
- Microsoft Office Grafik 10.0
- Microsoft Office Veri Kaynağı Denetimi 10.0
- Microsoft Office PivotTable 10.0
Bileşenlere ilişkin simgeler Araç Kutusu'nda görünür.
Form1'e Grafik denetimi, PivotTable denetimi ve Veri Kaynağı denetimi ekleyin. Formu ve denetimleri gerektiği gibi boyutlandırın ve konumlandırın.
Form1'e bir Düğme denetimi ekleyin ve ardından denetimin Text özelliğini Verileri Doldur olarak ayarlayın.
Örnek XML Web hizmetine bir başvuru ekleyin. Bunu yapmak için şu adımları uygulayın:
- Proje menüsünde Web Başvurusu Ekle'ye tıklayın. Web Başvurusu Ekle iletişim kutusu görüntülenir.
- Adres metin kutusuna http:// localhost/MyDataService/Service1.asmx?wsdl yazın ve ENTER tuşuna basın. WSDL dosyası iletişim kutusunda görüntülenir.
Not: MyDataService yerel bilgisayarda bulunmuyorsa, adresteki localhost değerini MyDataService'in bulunduğu Web sunucusunun adıyla değiştirin.
3. İletişim kutusunda Başvuru Ekle'ye tıklayın.Form1'de Düğme denetimine çift tıklayın ve Button1_Click işleyicisini aşağıdaki kodla değiştirin:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Reference to the service. Dim objClient As New localhost.Service1() 'Result obtained from the Service method. Dim strresult As String 'The results will be stored on this disk file. Dim datafile As String datafile = System.IO.Directory.GetCurrentDirectory() + "\\mydata.xml" 'Call the Web service method GetResultsAsAdoXML, which returns the recordset as XML. strresult = objClient.GetResultsAsAdoXML() Dim oxmldoc As New System.Xml.XmlDocument() 'Load the XML recordset into the XML Document object. oxmldoc.LoadXml (strresult) 'Save it to disk file. oxmldoc.Save (datafile) 'Get data in the DataSource component. If Len(AxDataSourceControl1.ConnectionString) = 0 Then AxDataSourceControl1.ConnectionString = "provider=mspersist" AxDataSourceControl1.RecordsetDefs.AddNew( _ datafile, AxDataSourceControl1.Constants.dscCommandFile, "ChartData") End If 'Get data in Chart component. Dim c Dim cht As OWC10.ChChart Dim ser As OWC10.ChSeries Dim ax As OWC10.ChAxis c = AxChartSpace1.Constants ' Clear the ChartSpace. AxChartSpace1.Clear() 'DataSource to the Chart component. AxChartSpace1.DataSource = AxDataSourceControl1.DefaultRecordset.DataSource 'Get the reference to Chart within the ChartSpace component. cht = AxChartSpace1.Charts(0) cht.Type = c.chChartTypeBarStacked cht.HasLegend = True cht.Legend.Position = c.chLegendPositionTop cht.HasTitle = True cht.Title.Caption = "Category Sales for 1997" 'Set the Chart data. AxChartSpace1.SetData(OWC10.ChartDimensionsEnum.chDimCategories, 0, "CategoryName") AxChartSpace1.SetData(OWC10.ChartDimensionsEnum.chDimValues, 0, "CategorySales") ax = cht.Axes(c.chAxisPositionBottom) 'Set the series attributes. ser = cht.SeriesCollection(0) ser.Name = "Category Sales" ser.Caption = ser.Name ser.Marker.Size = 4 'Get Data in the PivotTable component. Dim pview As OWC10.PivotView AxPivotTable1.AutoFit = True AxPivotTable1.ConnectionString = "provider=mspersist" AxPivotTable1.CommandText = datafile pview = AxPivotTable1.ActiveView pview.AutoLayout() pview.FilterAxis.Label.Visible = False pview.RowAxis.Label.Visible = False pview.ColumnAxis.Label.Visible = False pview.TitleBar.Visible = False End Sub
Not XML Web hizmeti ayrı bir bilgisayardaysa objClient değişkenini aşağıdaki gibi bildirin:
Dim objClient As New <servername>.Service1()
Burada sunucu adı , XML Web hizmetinin bulunduğu sunucunun adıdır.
Not Office 2003 kullanıyorsanız, başvuruları buna göre değiştirmeniz gerekebilir.
Aşağıdaki kodu Form1.vb dosyasının en üstüne ekleyin:
Imports OWC10 = Microsoft.Office.Interop.OWC
İstemci programını derlemek ve çalıştırmak için Hata Ayıkla menüsünde Başlat'a tıklayın. Form1 görüntülenir.
Grafik ve PivotTable denetimlerindeki verileri sunmak için Verileri Doldur'a tıklayın.
Visual Basic 6.0 kullanma
XML Web hizmetleri, Basit Nesne Erişim Protokolü (SOAP) iletilerini kullanarak istemcilerle iletişim kurar. İstemci uygulaması SOAP kullanan bir uygulamaysa, XML Web hizmeti tarafından kullanıma sunulan yöntemleri çağırabilir. İstemci bilgisayarlarda XML Web hizmetindeki yöntemleri çağırmak için Visual Studio .NET yüklü olması gerekmez. İstemci, XML Web hizmeti yöntem çağrılarını SOAP istekleri olarak çerçeveleyebilmeli ve yöntem çağrılarının sonuçlarını SOAP yanıtları olarak almalıdır. SOAP Araç Seti bunu yapmanızı sağlar.
İNDIRME yönergeleri de dahil olmak üzere SOAP Araç Seti hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesine bakın: SOAP Toolkit
MyDataService XML Web hizmetindeki yöntemleri kullanacak bir Visual Basic 6.0 test istemcisi oluşturmak için şu adımları izleyin:
Not
Bu test istemcisi bilgisayarda SOAP Toolkit 2.0 Service Pack 2'nin yüklü olmasını gerektirir.
Visual Basic 6.0'ı başlatın ve yeni bir Standart EXE projesi oluşturun. Form1 varsayılan olarak oluşturulur.
Proje menüsünde Başvurular'a tıklayın. Projeye aşağıdaki başvuruları ekleyin:
- Microsoft Soap Tür Kitaplığı
- Microsoft XML, v3.0
Proje menüsünde Bileşenler'e tıklayın. Microsoft Office XP Web Bileşenleri'ni seçin ve ardından Tamam'a tıklayın.
Form1'e aşağıdaki Office Web Bileşenlerini ekleyin:
- Microsoft Office Grafik 10.0
- Microsoft Office Veri Kaynağı Denetimi 10.0
- Microsoft Office PivotTable 10.0
Form1'e bir CommandButton denetimi ekleyin ve düğmenin Caption özelliğini Verileri Doldur olarak ayarlayın.
CommandButton denetimine çift tıklayın ve Command1_Click işleyicisini aşağıdaki kodla değiştirin:
Private Sub Command1_Click() Dim osoapClient As MSSOAPLib.SoapClient 'Initialize the SOAP client object. Set osoapClient = CreateObject("MSSOAP.SoapClient") osoapClient.mssoapinit "https://localhost/MyDataService/Service1.asmx?wsdl", "Service1", "Service1Soap" 'DOM object to load the results. Dim oXMLDoc As New MSXML2.DOMDocument Dim strdirname As String 'File to store XML recordset. strdirname = FileSystem.CurDir$ + "\mydata.xml" Dim strxmlrecordset As String 'Call the WebService method. strxmlrecordset = osoapClient.GetResultsAsAdoXML() 'Load the XML in the DOM document. oXMLDoc.loadXML strxmlrecordset 'Save it to the disk file. oXMLDoc.Save (strdirname) 'Get the data into the DataSourceControl1 component. If Len(DataSourceControl1.ConnectionString) = 0 Then DataSourceControl1.ConnectionString = "provider=mspersist" ' Add a RecordsetDef with name ChartData to the DataSourceControl1 DataSourceControl1.RecordsetDefs.AddNew strdirname, DataSourceControl1.Constants.dscCommandFile, "ChartData" End If 'Get the Data into the Chart component. Dim c Dim cht As ChChart Dim chart1 As ChChart Dim ser As ChSeries Dim ax As ChAxis Set c = ChartSpace1.Constants ChartSpace1.Clear 'DataSource to the Chart component. ChartSpace1.DataSource = DataSourceControl1.DefaultRecordset.DataSource ' Draw the chart. Set cht = ChartSpace1.Charts(0) cht.Type = c.chChartTypeBarStacked cht.HasLegend = True cht.Legend.Position = c.chLegendPositionTop cht.HasTitle = True cht.Title.Caption = "Category Sales for 1997" 'Set the chart data. ChartSpace1.SetData chDimCategories, 0, "CategoryName" ChartSpace1.SetData chDimValues, 0, "CategorySales" ' Set the tick label spacing depending on the number of points plotted. Set ax = cht.Axes(c.chAxisPositionBottom) 'Set the series attributes. Set ser = cht.SeriesCollection(0) ser.Name = "Category Sales" ser.Caption = ser.Name ser.Marker.Size = 4 'Get the data into the PivotTable. PivotTable1.ConnectionString = "provider=mspersist" PivotTable1.CommandText = strdirname PivotTable1.AutoFit = True Set pview = PivotTable1.ActiveView pview.AutoLayout pview.FilterAxis.Label.Visible = False pview.RowAxis.Label.Visible = False pview.ColumnAxis.Label.Visible = False pview.TitleBar.Visible = False End Sub
Not XML Web hizmeti ayrı bir bilgisayarda bulunuyorsa, XML Web hizmeti adresindeki localhost değerini XML Web hizmetinin bulunduğu sunucunun adıyla değiştirin.
Programı derlemek ve çalıştırmak için F5 tuşuna basın. Form1 görüntülenir.
Verileri Grafik ve PivotTable bileşenlerinde sunmak için Verileri Doldur'a tıklayın.
Başvurular
ASP.NET kullanılarak oluşturulan XML Web hizmetleri hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
301273 Visual Basic .NET kullanarak basit bir Web hizmeti yazma
ASP.NET kullanılarak oluşturulan XML Web hizmetleri hakkında daha fazla bilgi için Visual Studio .NET Yardımı'ndaki "Web'i Web Hizmetleri ile Programlama" konusuna veya Microsoft .NET Framework Geliştirici Kılavuzu'ndaki "Web Hizmetleri ve ASP.NET Web Hizmeti İstemcilerini ASP.NET" konusuna bakın.
ASP.NET kullanılarak oluşturulan Web hizmetinin temel bileşenleri ve XML Web hizmetleri hakkında ek bilgi için aşağıdaki Microsoft Geliştirici Ağı (MSDN) Web sitesini ziyaret edin:
https://msdn.microsoft.com/en-us/library/ba0z6a33.aspx
Visual Studio ve Office XP Web Bileşenleri ile Microsoft Office geliştirme hakkında ek bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
https://msdn.microsoft.com/en-us/library/aa188489(office.10).aspx