次の構成のWCFサービスがあります。
<services>
<service name="MyService" behaviorConfiguration="MyServiceBehavior">
<endpoint
binding="basicHttpBinding"
contract="IMyService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8001/MyService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
</behavior>
</serviceBehaviors>
</behaviors>
このスクリプトはそれを呼び出すことになっています:
Option Explicit
Dim soapClient
Dim serviceUri
Dim serviceName
Dim portName
Dim result
serviceUri = "http://localhost:8001/MyService"
serviceName = "MyService"
portName = "BasicHttpBinding_IMyService"
Set soapClient = CreateObject("MSSOAP.soapClient")
soapClient.ClientProperty("ServerHTTPRequest") = True
soapClient.mssoapinit serviceUri & "?WSDL", serviceName, portName
スクリプトを実行すると、次のエラーが表示されます。
クライアント:WSDLReader:WSDLファイルの分析に失敗しましたHRESULT = 0x8 0004005-WSDLReader:サービスの初期化に失敗しましたHRESULT = 0x80004005-WSDLサービス:サービスMyServiceのポートの初期化に失敗しましたHRESULT = 0x80004005-WSDLPort:ポートのバインディング情報の分析に失敗しましたBasicHttpBinding_IMyServiceに失敗しましたHRESULT = 0x80004005-WSDLPort:ポートBasicHttpBinding_IMyServiceの操作を初期化できませんでしたHRESULT = 0x8000 4005-WSDLOperation:操作// def:portType [@ name = "IMyService"] / def:operation [@ name="MyMethod"]は初期化できませんでしたポートタイプセクションにありますHRESULT=0x80004005
何が問題になっていますか?助けてください。
編集:
Cheeso、答えてくれてありがとう。MSSOAPの問題は、生成されたWSDLファイルにすべてのxsdスキーマをインラインで含める必要があることです。WCFはデフォルトではそれを行いません。