私のコントロール外のクライアントが消費する.NET Webサービスを作成しました(私のサーバーはPHPで書かれたライブサーバー用のシミュレータです)。 Webサービスは必要に応じて機能しますが、クライアントは.asmx拡張機能やその拡張機能を呼び出しに追加する機能を持っていません。基本的にはhttp://localhost/soap/MyWebServiceを使用し、IISはhttp://localhost/soap/MyWebService.asmxを使用します。 IISが.asmx拡張子なしの要求に応答するようにする方法はありますか?.asmx拡張子を持たないIIS Webサービスを呼び出す
答えて
ワイルドカードマッピングを追加し、どのASP.NETを通るルートすべての要求を以下となります。
ます。また、着信要求http://localhost/soap/MyWebService
がhttp://localhost/soap/MyWebService.asmx
にマッピングできるようにするために、書き換えいくつかのURLを行う必要があります。
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
基本的に、あなたはApplication_BeginRequest
メソッドに次のようなものを追加することができます。
string path = Request.Path;
if (path.Contains("/soap/") && !path.EndsWith(".asmx"))
Context.RewritePath(path + ".asmx");
私はそれをテストしていない(そしてそれはHACKだ)けど、それはあなたが始める必要があります。
また、それをディレクトリに単独で置くこともできますし、IISでそれをデフォルトのドキュメントとして設定することもできます。サーバー上で
:C:IISで/mywebsite.com/mywebservice/mywebservice.asmx
は、ウェブ上のデフォルトドキュメント
としてmywebservice.asmx設定:http://mywebsite.com/mywebservice
それを試しても機能しませんでした。 – jercra
それは私には思われますPHPクライアントには何か非常に間違っていることがあります。彼らは何らかの形でサービスのURLをinterepretingすべきではありません。サーバーメタデータまたはクライアント構成で指定されているURLは、使用する必要があるURLです。
私はPHPを知らないのですが、なぜPHPにURLにいくつのドットがあるかを気にする理由を教えてもらえますか?私のサービスがhttp://localhost/foo/barか "http://localhost/foo/b.a.r.asmx?PHP=0"であるかどうかは、どのクライアントにとっても重要であることはわかりません。
問題は、そこにいくつのドットがあるのかPHPが気にすることではありません。 PHPクライアントは私のコントロール下になく、アドレスはhttp:// localhost/foo/barにハードコードされており、IISはhttp://localhost/foo/bar.asmxを予期しています。 .asmxのないリクエストは依然として処理する必要があることを理解するためにIISが必要でした。 – jercra
これは、世界で、Webサービスや他のリソースのクライアントがURLをハードコードするのは良いアイデアだろうという私の信念を確認し始めますか? URLが変更されます。彼らはいくつかの設定ストアからURLを取る必要があります。 –
PHPではwsdlのみを呼び出す必要があります。asxmやそのような愚かなことは必要ありません。
1全てのシンプルな例
$wsdl = "http://domain/wsdlfile.wsdl"; //url to wsdl
$client = new SoapClient($wsdl,array('trace' => 1,'encoding' => 'UTF-8','exceptions' => 0));
$Return = $client->callfunction();
echo htmlspecialchars($client->__getLastResponse());
。
私は容赦しますが、PHPでもWSDLを呼び出すことはできません。 WSDLは、PHPが後で呼び出すサービスを記述するだけです。 WSDLには通常、実際のサービスのURLが含まれます。これは愚かな.asmxファイルになります。 –
- 1. Silverlight4 ASMX Webサービスを呼び出す
- 2. ASMX Webサービスの呼び出し中にセッションを維持する
- 3. WebサービスURLから.asmx拡張子を削除する
- 4. JavaScriptを使用してクロスドメインasmx Webサービスを呼び出す
- 5. GET経由でASMX Webサービスを呼び出す方法は?
- 6. Xamarin ASMXのWebサービスをフォームの複数の呼び出し
- 7. Response.Writeを使用してJqueryからasmx Webサービスを呼び出すJSON出力
- 8. 拡張子なしで.exeを呼び出す-i
- 9. Webサービスを呼び出すWebサービス
- 10. Webサービスを呼び出す
- 11. Web API呼び出しWebサービス
- 12. ajaxを使用してJavaScriptからWebサービス.asmxを呼び出す
- 13. 同じサービスを呼び出すWebサービスとWebアプリケーションを呼び出すWin-app
- 14. asp.netアプリケーションがWebサービスを呼び出す
- 15. MVCビューからASMX Webサービスを呼び出す方法は?続き
- 16. asp.net経由で.asmx Webサービスを呼び出すときのクライアント側のイベント?
- 17. JSから呼び出すASP.NET Webサービス
- 18. IISからWebサービスを呼び出すのが遅くなります
- 19. ssisパッケージを使用してWebサービス(.asmx)またはwcfサービス(.svc)を呼び出す方法
- 20. JSPでWebサービスを呼び出す
- 21. Jqueryを使用してSharePoint 2010でASMXサービスを呼び出す
- 22. asmx Webサービスを.net 2.0で実行していない場合、iisなしで
- 23. 非同期Java Webサービス呼び出しの呼び出し
- 24. Webサービスを呼び出す例外を呼び出す
- 25. javascriptを呼び出すためにWeb拡張アイコンを取得する方法
- 26. JQueryからWebサービスを呼び出すときにASP.NETからスローされた例外を拡張します。
- 27. ColdFusion Webクライアントから簡単に呼び出し可能なASP.NET ASMX Webサービスを作成する
- 28. Webサービス呼び出しHTTPS
- 29. ASMX Webサービス - SoapHttpClientProtocol.InvokeAsync
- 30. jQuery ajaxで関数asmxの呼び出しを呼び出す
このソリューションは機能しますが、IIS 6以降を実行しているシステムでのみ動作します。 – jercra
IIS 5.xにワイルドカードマッピングを追加することはできますが、手順は異なります。 – Brannon
ええと、IIS 5.xにワイルドカードマッピングを追加することはできますが、動詞が許可されていないというエラーが表示されるWebサービスに関してはバグがあります。このバグは、ASP.netの掲示板にもよく載っています。 – jercra