Silverlight ネットワーク操作

SilverlightにおけるNetTcpBingingの利用

概要

Silverlight では、明示的に NetTcpBinding を提供していませんので、Silverlight のクライアント側で NetTcpBinding と通信するため、いくつ注意することがあります。

サービスの作成

サービス側における作成・設定では、従来の通りに設定すればよいですが、ファイアウォールでのポートに対する設定を忘れないでください。

クライアントでの呼び出す

Silverlight のクライアント側は、サービス参照による生成された「ServiceReferences.ClientConfig」ファイルの中にでは「customBinding」でサービスの設定を記述します。

クライアント側で、ソースコードによって、NetTcpBinding を利用する場合、下記のように、CustomBinding を定義する必要があります。「System.ServiceModel.NetTcp」を参照に追加する必要があります。

BinaryMessageEncodingBindingElement messageEncoding = new BinaryMessageEncodingBindingElement();
TcpTransportBindingElement tcpTransport = new TcpTransportBindingElement();
CustomBinding binding = new CustomBinding(messageEncoding, tcpTransport);

Silverlight でサービスのエンドポイントを動的呼び出すための設定に、サービス提供するサーバーのDNSをlocalhostにするのはできません。誤って「localhost」で設定したら、アクセスポリシーファイルを正しく読み込めません。(これはばバグでしょう?)

ポート番号

利用できるポート番号は:4502~4534 です。
http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

ドメイン間ポリシーファイル

NetTcpBinding で通信するため「clientaccesspolicy.xml」ファイルは下記のように設定します。

<?xml version="1.0" encoding="utf-8" ?>
  <access-policy>
    <cross-domain-access>
      <policy>
        <allow-from http-request-headers="*">
          <domain uri="*"/>
        </allow-from>
        <grant-to>
          <socket-resource port="4502-4534" protocol="tcp" />
        </grant-to>
      </policy>
  </cross-domain-access>
</access-policy>

「clientaccesspolicy.xml」の配置先の場所は、ドメイン名の直下に格納する必要があります。 たとえば、サーバー名は「MyDomain」の場合、下記のURLから clientaccesspolicy.xml をアクセスできます。ポート番号は「80」です。

http://MyDomain/clientaccesspolicy.xml

マイクロソフトのサンプル

http://support.microsoft.com/kb/2425652/en



あなたのお住まいの地域で最安のブロードバンド選び

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:36:00 (1627d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze