Visual Studio 2010 を使用して、サード パーティが使用する Web アプリケーションでホストされる WCF サービスを開発しました。彼らはそれを呼び出すことができないと私に言っています。テストのために、彼らは私を Altova XmlSpy にリダイレクトし、新しい SOAP リクエストを作成するときに、[SOAP リクエスト パラメーターの変更] メニュー項目で [SOAP+XML (SOAP 1.2) として送信] チェックボックスを選択すると、次の 2 つの警告ダイアログ:
HTTP error: could not POST file ‘/TurniArc/WebServices/Processi.svc’ on server ’10.51.0.108’ (415)
Error sending the soap data to ‘http://10.51.0.108/TurniArc/WebServices/Processi.svc’ HTTP error: could not POST file ‘/TurniArc/WebServices/Processi.svc’ on server ’10.51.0.108’ (415)
私は確かにそれを確認しました。そのオプションのチェックを外すと、リクエストは必要に応じて送信されます。また、社内テストに常に使用していたソフトウェアである soapUI を使用して、Web サービスを呼び出す際に問題が発生したことはありません。
これは私が作成する最初の Web サービスであり、理論的な知識なしで開始します (しかし、誰もが知っていると思います :-) )。問題はバインディングにあるのでしょうか? Add/New Item/WCF Service を使用してサービスを作成し、すべてのデフォルト オプションを残したので、BasicHttpBinding である必要があります。
これは私の web.config の serviceModel 部分です
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/>
<!--other bindings related to proxies to other services I'm invoking -->
</system.serviceModel>
私のインターフェースには
[ServiceContract(Namespace="http://www.archinet.it/HRSuite/Processi/")]
属性とそれを実装するクラスには
[ServiceBehavior(IncludeExceptionDetailInFaults = true, Namespace = "http://www.archinet.it/HRSuite/Processi/")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
属性
ありがとうございました
編集:サードパーティはOracle SOAミドルウェアを使用しています