2

Visual Studio 2010でWebサービスへの参照を追加しようとするとエラーが発生します。Webサービスは、JAX-WS / Metro / GlassFishスタックを使用してJavaで実装され、UsernameTokenポリシーが含まれています。これがWSDLからの抜粋です。

<wsp:Policy
        xmlns:wsp="http://www.w3.org/ns/ws-policy"
        xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
        wsu:Id="UsernameToken">
    <sp:SupportingTokens>
        <wsp:Policy>
            <sp:UsernameToken sp:IncludeToken=".../IncludeToken/AlwaysToRecipient" />
        </wsp:Policy>
    </sp:SupportingTokens>
</wsp:Policy>

Visual StudioでこのWebサービスにサービス参照を追加しようとすると、次の警告が表示されます。

Custom tool warning:
  The following Policy Assertions were not Imported:
  XPath://wsdl:definitions[@targetNamespace='http://archfirst.org/bfoms/tradingservice.wsdl']/wsdl:binding[@name='TradingWebServicePortBinding']
  Assertions:
    <sp:SupportingTokens xmlns:sp='http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702'>..</sp:SupportingTokens>

Custom tool warning:
  Endpoint 'TradingWebServicePort' at address 'http://localhost:8080/bfoms-javaee/TradingService'
  is not compatible with Silverlight 4. Skipping...

Custom tool warning:
  No endpoints compatible with Silverlight 4 were found. The generated client
  class will not be usable unless endpoint information is provided via the
  constructor.

Visual Studioがアサーションをインポートできないのはなぜですか?

PS SoapUIツールを使用して、Webサービスをインポートしてテストすることができました。

4

1 に答える 1

3

WCFは、デフォルトでは、セキュリティで保護されたトランスポート= HTTPSを介したユーザー名トークンのみをサポートします(または、証明書によって提供されるメッセージセキュリティを使用しますが、メッセージセキュリティはSilverlightではまったくサポートされません)。保護されていないトランスポートでユーザー名トークンを許可するカスタムバインディングを構築する方法がありますが、 Silverlight 4allowInsecureTransport ではおそらくサポートされていません(カスタムバインディングを作成するときにも見つかりませんでした)。

WCFは、ダイジェストされたパスワードを持つユーザー名トークンもサポートしていません。ダイジェストされたパスワードを含むユーザー名トークンが必要な場合は、WCFセキュリティパイプラインの追加部分を実装する必要があります。ここでも、Silverlightの限られた機能セットで問題が発生する可能性があります。

ホスティングアプリケーションでプロキシサービスの作成を試みることができます。このサービスはSilverlightアプリケーションによって呼び出され、Javaサービスを呼び出します。

于 2011-02-06T12:12:17.263 に答える