2

サーバーとは別のIPセグメントにインストールすると、ログインできないSilverlightアプリケーションがあります。(クライアントは192.168.77.xxにあり、サーバーは192.168.40.xxにあります)。

クライアントが同じセグメントにある場合、クライアントはスムーズに実行されます。

クライアントは、サーバーにping、telnet、およびリモートデスクトップを使用できます。サーバーから他のアプリケーションにログインすることもできますが、Silverlightアプリケーションにログインすることはできません。

異なるIPセグメントでSilverlightアプリケーションを実行する方法を知っている人はいますか?

4

1 に答える 1

1

クロスサイトリクエストフォージェリを防ぐために、Silverlight 4(およびそれ以降)では、画像とメディア以外のすべてのリクエストに対して、デフォルトでサイトオブオリジン通信のみが許可されます。Silverlightコントロールが別のドメインのサービスにアクセスできるようにするには、サービスが明示的にオプトインしてクロスドメインアクセスを許可する必要があります。

したがって、SilverlightアプリケーションがホストされているWebサイトのルートに配置ClientAccessPolicy.xmlする必要があります。CrossDomain.xml

以下にサンプルを示しClientAccessPolicy.xmlます(他のドメインから現在のドメインのすべてのリソースへのアクセスを許可します)。

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

そしてここにサンプルがありCrossDomain.xmlます:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
</cross-domain-policy>

ドメインの境界を越えてサービスを利用できるようにする方法については、こちらをご覧ください。

于 2012-05-03T13:35:26.837 に答える