Bagikan melalui


Pertimbangan Saat Menggunakan Layanan Web

Bagian ini menyediakan informasi yang harus Anda pertimbangkan saat menggunakan layanan Web.

Menggunakan dua karakter garis bawah dalam nama parameter

Nama parameter untuk metode Web tidak dapat dimulai dengan "__" (dua karakter garis bawah). Nama yang dimulai dengan dua karakter garis bawah dapat membuat bagian pesan Web yang tidak didukung (tidak dapat digunakan) oleh XLANG/dtk.

Elemen apa pun dan atribut anyAttribute tidak didukung dalam metode Web

Anda tidak dapat menggunakan elemen atau atribut anyAttributeapa pun dalam skema untuk metode Web.

Menggunakan kata kunci XLANG/dtk

Nama layanan Web atau nama metode Web tidak dapat menjadi kata kunci dalam XLANG/dtk. Jika Anda menggunakan kata kunci XLANG/dtk dalam nama layanan Web atau nama metode Web, Anda akan mendapatkan kesalahan kompilasi saat menambahkan layanan Web. Untuk daftar kata yang dipesan untuk bahasa XLANG/dtk, lihat Kata Khusus XLANG.

Dukungan XLANG/dtk yang diperlukan untuk jenis parameter

Menggunakan jenis parameter metode Web yang didukung non-XLANG/dtk akan menyebabkan kesalahan kompilasi. Misalnya, BizTalk Server tidak mendukung parameter yang terdiri dari array dimensi tunggal dari jenis skema. Selain itu, BizTalk Server tidak mendukung array multi-dimensi. Untuk daftar kata-kata yang dicadangkan bahasa XLANG/dtk di BizTalk Server, lihat Kata Khusus XLANG.

Menghindari kesalahan kompilasi yang disebabkan oleh penambahan referensi Web yang berisi kata kunci atau pengidentifikasi C#

Saat Anda menggunakan Tambahkan Referensi Layanan untuk menambahkan referensi layanan ke proyek BizTalk, BizTalk Server mengonversi jenis skema yang diperlukan untuk memanggil setiap metode Web ke skema. BizTalk Server menambahkan skema ini ke Reference.xsd. Jika skema Anda berisi nama elemen yang merupakan kata kunci C# atau nama elemen tidak valid sebagai pengidentifikasi C#, Anda mungkin mendapatkan kesalahan run-time. Untuk menghindari kesalahan run-time, pastikan bahwa layanan Web yang Anda gunakan tidak berisi nama elemen yang merupakan kata kunci C# atau pengidentifikasi C# yang tidak valid.

Beberapa definisi jenis layanan/port tidak didukung

BizTalk Server mendukung penambahan file layanan Web dengan satu layanan dan definisi jenis port. Jika Anda menambahkan file WSDL dengan beberapa definisi jenis layanan atau port, Anda mungkin menerima kesalahan berikut:

Tidak dapat menghasilkan file BizTalk. Referensi objek tidak diatur ke instans objek.

Dukungan untuk mengkonsumsi array yang diekspos oleh layanan Web

BizTalk Server dapat menggunakan satu array dimensi dan jagged yang diekspos oleh layanan Web yang bukan layanan Web BizTalk. Untuk informasi selengkapnya tentang cara menggunakan array layanan Web, lihat Cara Menggunakan Array Layanan Web.

Catatan

Sintaks array multidisional tidak didukung. Contohnya:MyArray[1,5]

Catatan

BizTalk Server tidak mendukung penggunaan array objek DataSet yang diekspos oleh layanan Web. Sublayanan XLANG/s secara asli mendukung kelas .NET DataSet tetapi jika Anda membuat proyek BizTalk yang berisi referensi Web ke layanan Web yang mengekspos array objek .NET DataSet, Anda akan mendapatkan kesalahan saat Anda mencoba mengkompilasi proyek.

Parameter metode web harus Xml Serializable

Semua parameter dalam layanan Web yang digunakan harus Xml Serializable. Jika Anda menambahkan metode Web yang berisi parameter yang tidak Dapat Diserialisasi xml, Anda mungkin menerima pesan kesalahan berikut:

System.Xml. Elemen harus Xml Seralizeable untuk menjadi jenis bagian pesan.

Catatan

Jenis data, XmlDocument dan DataSet, meskipun tidak Dapat Diserialisasi xml, didukung.

Mengkonsumsi Olahpesan hanya layanan Web

Saat hanya menggunakan layanan Web olahpesan, semua nama bagian isi pesan BizTalk harus cocok dengan nama parameter metode Web. Misalnya, jika tanda tangan layanan Web adalah WebMethod(MyType1 type1, MyType2 type2), nama bagian harus type1 dan type2, Anda mungkin mendapatkan kesalahan runtime berikut:

Gagal mengambil bagian pesan untuk parameter %1

Untuk informasi selengkapnya, lihat Cara Menggunakan Layanan Web dalam Skenario Hanya Olahpesan.

Mengonfigurasi PORT Kirim SOAP Secara Terprogram

Dimungkinkan untuk mengatur properti konfigurasi secara terprogram pada konteks pesan. Anda dapat mengatur properti ini dalam orkestrasi atau komponen alur kustom apakah port kirim statis atau dinamis atau tidak.

Catatan

Untuk mengonfigurasi properti MethodName untuk port kirim SOAP statis secara terprogram, Anda perlu mengatur Nama metode ke [Tentukan Nanti] di tab Layanan Web dari kotak dialog Properti Transportasi SOAP di Konsol Administrasi BizTalk Server.

Untuk informasi selengkapnya tentang properti MethodName , lihat Cara Mengatur URI Layanan Web yang Digunakan secara Dinamis.

Untuk informasi selengkapnya tentang kotak dialog Properti Transportasi SOAP , lihat Kotak Dialog Properti Transportasi SOAP, tab Layanan web di panduan UI dan referensi namespace API pengembang.

Aturan Properti

Jika properti konfigurasi diatur dalam orkestrasi atau dalam komponen alur kustom dalam alur penerima, maka aturan berikut diterapkan:

  • Jika pesan dikirim ke port pengiriman statis, nilai properti akan ditimpa dengan nilai yang dikonfigurasi untuk port pengiriman tersebut.

  • Jika pesan dikirim ke port pengiriman dinamis, nilai properti tidak akan ditimpa.

    Jika properti konfigurasi diatur dalam komponen alur kustom dalam alur kirim, maka aturan berikut diterapkan:

  • Nilai tidak akan ditimpa terlepas dari apakah pesan dikirim ke port pengiriman statis atau dinamis. Dengan kata lain, kirim komponen alur menimpa properti konfigurasi di mana pun komponen tersebut diatur.

  • Untuk informasi selengkapnya tentang komponen alur kustom, lihat Mengembangkan Komponen Alur Kustom.

  • Untuk informasi selengkapnya tentang properti konfigurasi adaptor pengiriman SOAP, lihat Cara Mengatur URI Layanan Web yang Digunakan secara Dinamis.

Menambahkan referensi Web ke layanan Web yang digunakan yang berisi skema multi-root akan menyebabkan kesalahan kompilasi

Jika Anda menambahkan referensi Web ke proyek Anda untuk layanan Web yang berasal dari orkestrasi BizTalk yang diterbitkan dan orkestrasi berisi skema dengan beberapa akar maka kesalahan akan terjadi ketika proyek dikompilasi. Jika Anda menambahkan referensi Web ke proyek Anda yang berasal dari orkestrasi BizTalk yang diterbitkan, pastikan bahwa orkestrasi tidak berisi skema multi-root.

Menggunakan TypedDataSets sebagai parameter ke metode Web

Berikut ini adalah apa yang perlu Anda lakukan untuk mendukung penggunaan TypedDataSets sebagai parameter ke metode Web:

  1. Tambahkan referensi Web ke proyek C# lalu buat proksi.

  2. Buat port kirim SOAP dan tentukan proksi pada port kirim dan pilih metode .

  3. Dalam orkestrasi, tentukan port terikat terlambat dan tentukan jenis pesan. Untuk sebagian besar kasus di mana tidak ada promosi properti atau akses bidang khusus yang diperlukan, jenis dapat didefinisikan sebagai XMLDocument. Pilih Alur PassThrough dengan jenis ini.

  4. Di konsol Administrasi BizTalk Server, di tab Layanan Web di kotak dialog Properti Transportasi SOAP dari port pengiriman SOAP, tentukan bahwa Anda ingin menggunakan proksi yang Anda buat. Anda juga perlu menentukan perakitan, jenis, dan metode. Untuk informasi selengkapnya, lihat Kotak Dialog Properti Transportasi SOAP, tab Layanan web di panduan UI dan referensi namespace API pengembang.

Menambahkan referensi Web ke layanan Web yang digunakan yang berisi metode Web yang mengharapkan parameter berbasis generik akan menyebabkan kesalahan kompilasi

Jika Anda menambahkan referensi Web ke proyek Anda untuk layanan Web yang berisi metode Web yang mengharapkan parameter berbasis generik seperti parameter yang dapat diubah ke null, kesalahan akan terjadi saat proyek dikompilasi. Ini tidak didukung. Anda harus menggunakan spesialisasi eksplisit untuk memanggil kelas generik dari XLANG/dtk.

Pembuatan Skema BizTalk menggunakan Tambahkan Referensi Layanan

Saat Anda menggunakan Tambahkan Referensi Layanan untuk menambahkan referensi layanan ke proyek BizTalk, BizTalk Server mengonversi jenis skema yang diperlukan untuk memanggil setiap metode Web ke skema. BizTalk Server menambahkan skema ini ke Reference.xsd. Untuk memastikan bahwa Tambahkan Referensi Layanan menghasilkan skema BizTalk dengan benar, layanan Web harus sesuai dengan panduan berikut:

  • Metode web harus memiliki SoapDocumentMethodAttribute alih-alih SoapRpcMethodAttribute.

  • Layanan dan metode web harus menggunakan pengikatan Literal alih-alih Dikodekan seperti [SoapDocumentMethod(Use=SoapBindingUse.Literal)].

  • Parameter metode web dan jenis pengembalian harus memiliki XmlRootAttribute dengan properti Namespace yang valid kecuali mereka adalah jenis XSD asli dan jenis XmlNode.

  • Metode web tidak boleh menggunakan properti RequestNamespace dan ResponseNamespace di SoapDocumentMethodAttribute.

  • Layanan web harus mematuhi Profil Dasar interoperabilitas layanan Web (WSI) versi 1.1.

XSD tidak akan berisi simpul untuk jenis parameter sederhana

Saat Anda menambahkan referensi Web dan metode Web memiliki parameter yang merupakan jenis sederhana, XSD yang dihasilkan tidak akan berisi simpul untuk parameter tersebut. Sebaliknya, pesan multipihak yang dihasilkan akan berisi bagian yang berjenis sederhana. Orkestrasi harus menangani bagian pesan ini dengan tepat. Jika itu adalah bagian dari permintaan ke layanan Web, tetapkan nilai secara manual ke bagian tersebut dengan bentuk penetapan pesan. Jika ini adalah bagian dari respons dari layanan Web, akses bagian tersebut secara manual dalam bentuk ekspresi untuk melihat nilainya.

Referensi Tambahkan Layanan tidak mendukung elemen impor Web Services Description Language (WSDL)

Referensi Tambahkan Layanan gagal saat Anda menambahkan referensi layanan untuk file WSDL dengan elemen impor.

Lihat juga

Membuat Pesan Web