Ini bukan pertanyaan - mempostingnya di sini untuk referensi:
Saat mengkonsumsi WebService, saya mendapat kesalahan berikut:
Format permintaan tidak dikenali untuk URL yang secara tak terduga berakhir di / myMethodName
asp.net
web-services
roman m
sumber
sumber
Jawaban:
Menemukan solusi di situs web ini
Yang Anda butuhkan adalah menambahkan yang berikut ke web.config Anda
Info lebih lanjut dari Microsoft
sumber
Meskipun 90% dari semua informasi yang saya temukan (ketika mencoba menemukan solusi untuk kesalahan ini) mengatakan kepada saya untuk menambahkan
HttpGet
danHttpPost
ke konfigurasi, itu tidak bekerja untuk saya ... dan bagaimanapun juga tidak masuk akal bagi saya.Aplikasi saya berjalan di banyak server (30+) dan saya belum pernah menambahkan konfigurasi ini untuk mereka. Baik versi aplikasi yang berjalan di bawah .NET 2.0 atau .NET 4.0.
Solusi bagi saya adalah mendaftar ulang ASP.NET terhadap IIS.
Saya menggunakan baris perintah berikut untuk mencapai ini ...
sumber
aspnet_regiis -i
memperbaikinya.Pastikan Anda menggunakan metode yang tepat: Posting / Dapatkan, jenis konten yang tepat dan parameter (data) yang tepat.
sumber
content-type: application/json
memecahkan masalah ini untuk saya juga.Hebat.
Kasus 2 - di mana masalah yang sama dapat muncul) dalam kasus saya masalahnya adalah karena baris berikut:
Ini bekerja dengan baik di server karena panggilan dilakukan langsung ke fungsi layanan web - namun akan gagal jika Anda menjalankan layanan langsung dari .Net di lingkungan debug dan ingin menguji menjalankan fungsi secara manual.
sumber
Sebagai catatan saya mendapatkan kesalahan ini ketika saya memindahkan aplikasi lama dari satu server ke yang lain. Saya menambahkan
<add name="HttpGet"/> <add name="HttpPost"/>
elemen ke web.config, yang mengubah kesalahan menjadi:Untuk memperbaiki kesalahan ini, saya harus menambahkan baris ScriptHandlerFactory ke web.config:
Mengapa itu bekerja tanpa garis-garis ini pada satu server web dan bukan yang lain saya tidak tahu.
sumber
Saya menggunakan baris kode berikut untuk memperbaiki masalah ini. Tulis kode berikut dalam file web.config
sumber
Saya tidak memiliki masalah ketika berkembang di localhost. Namun, begitu saya menerbitkan ke server web, layanan web mengembalikan hasil kosong (kosong) dan saya melihat kesalahan dalam log saya.
Saya memperbaikinya dengan mengatur ajax contentType saya ke:
dan menggunakan:
pada objek yang saya posting.
sumber
Saya juga mendapatkan kesalahan ini dengan apache mod-mono. Sepertinya halaman dokumentasi untuk layanan web belum diimplementasikan di linux. Tetapi layanan web berfungsi meskipun ada kesalahan ini. Anda harus melihatnya dengan menambahkan
?WSDL
di akhir url, yaitu http: //localhost/WebService1.asmx? WSDLsumber
Dalam kasus saya kesalahan terjadi ketika saya pindah dari PC Windows 10 lokal saya ke server khusus dengan Windows 2012. Solusi untuk adalah menambahkan ke web.config baris berikut
sumber
Dalam html Anda harus melampirkan panggilan dalam bentuk dengan GET dengan sesuatu seperti
Anda juga dapat menggunakan a
POST
dengan tindakan menjadi lokasi layanan web dan memasukkan parameter melalui tag input.Ada juga
SOAP
kelas dan proxy.sumber
Dalam kasus saya, saya memiliki kelebihan fungsi yang menyebabkan pengecualian ini, setelah saya mengubah nama fungsi kedua saya berjalan ok, tebak server web tidak mendukung kelebihan fungsi
sumber
Dalam kasus kami masalahnya disebabkan oleh layanan web yang dipanggil menggunakan metode permintaan OPSI (bukan GET atau POST).
Kami masih belum tahu mengapa masalah tiba-tiba muncul. Layanan web telah berjalan selama 5 tahun dengan sangat baik melalui HTTP dan HTTPS. Kami adalah satu-satunya yang mengkonsumsi layanan web dan selalu menggunakan POST.
Baru-baru ini kami memutuskan untuk membuat situs yang hanya menyelenggarakan layanan web SSL. Kami menambahkan aturan penulisan ulang ke Web.config untuk mengubah HTTP apa pun menjadi HTTPS, digunakan, dan segera mulai mendapatkan, di atas permintaan GET dan POST biasa, permintaan OPSI. Permintaan OPSI menyebabkan kesalahan yang dibahas pada posting ini.
Sisa aplikasi bekerja dengan sangat baik. Tetapi kami terus mendapatkan ratusan laporan kesalahan karena masalah ini.
Ada beberapa posting (misalnya yang ini ) yang membahas bagaimana menangani metode OPSI. Kami pergi untuk menangani permintaan OPSI langsung di Global.asax. Ini membuat masalah menghilang.
sumber
Saya mendapatkan kesalahan ini sampai saya menambahkan (seperti yang ditunjukkan dalam kode di bawah) $ .holdReady (true) di awal panggilan layanan web saya dan $ .holdReady (false) setelah itu berakhir. Ini adalah hal jQuery untuk menangguhkan status halaman yang siap sehingga skrip dalam dokumen. Sudah berfungsi akan menunggu untuk ini (di antara hal-hal lain yang mungkin tetapi tidak saya ketahui).
sumber
Pastikan Anda menonaktifkan kesalahan khusus. Ini dapat menutupi masalah asli dalam kode Anda:
perubahan
untuk
sumber
sebuah WebMethod yang membutuhkan ContextKey,
ketika kunci ini tidak diatur, dapatkan pengecualian.
Memperbaikinya dengan menetapkan kunci AutoCompleteExtender.
sumber