ASP.NET 2.0のBasic Profile 1.1違反を直す方法
ASP.NET 2.0のSOAPサービスは、特に?WSDLパラメータを付けたリクエストで返されるWSDLファイルを見ると分かりやすいのだけど、Basic Profile 1.1のR2401に違反している。
- R2401
- A wsdl:binding element in a DESCRIPTION MUST use WSDL SOAP Binding as defined in WSDL 1.1 Section 3.
この定義にもかかわらず、HTTP GETとHTTP POSTを受け付けてしまうためである。
というわけで、サポートしているプロトコルからSOAP以外の全てを削除しなければならない。
ちなみに、.NET 2.0のSystem.Web.Services.Description.WebServicesInteroperabilityにはバグがあって、これをちゃんと検出しないので、wsdl.exeを信用してはならない。他のツールを使用すれば良い。