7

あるサブドメインにある Silverlight アプリケーションを別のサブドメインの Web ページに追加しようとしています。何らかの理由で、これは単純に機能しません...私のSilverlightアプリケーションは、http://subA.domain.com/somepage.htmlのページにそのままロードされます:

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
        width="800px" height="600px">
        <param name="source" value="http://subB.domain.com/SilverlightApp.xap" />
        <param name="onerror" value="onSilverlightError" />
        <param name="background" value="white" />
        <param name="minRuntimeVersion" value="2.0.31005.0" />
        <param name="autoUpgrade" value="true" />
        <param name="enableHtmlAccess" value="true" />
        <a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
            <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight"
                style="border-style: none" />
        </a>
    </object>
    <iframe style='visibility: hidden; height: 0; width: 0; border: 0px'></iframe>
</div>

SilverlightApp.xap を subA.domain.com に移動すると、完全に読み込まれます。ドメイン間で XAP ファイルにアクセスするには、どのような手順が必要ですか?? 私はこれを理解しようとしてネットをかき集めてきましたが、どこにも行き着いていないようです。

ありがとう!!

4

3 に答える 3

5

同じ問題を抱えていて IFrame を使用したくない他のユーザーを支援するには、このリンクを参照してください。これで私の問題は解決しました。著者は Silverlight 2 について言及していますが、Silverlight 3 で私の問題は解決しました。

-- Silverlight アプリで、AppManifest.xml を編集して以下を追加します。

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ExternalCallersFromCrossDomain="ScriptableOnly">

-- Silverlight アプリで HtmlPage を使用している場合 (ホスティング ページに渡された QueryString を読み取るときなど)、以下も追加する必要があります。

<param name="enableHtmlAccess" value="true" />

ホスティング ページの Silverlight オブジェクトに。

上記にはセキュリティへの影響があることに注意してください。これが、マイクロソフトがこの情報を広めようとしない理由だと思わざるを得ません。ただし、私の場合、スクリプト可能な Silverlight 要素はありません。また、Silverlight アプリを作成したので、Silverlight アプリがアクセスできるホスティング ページに問題はありません。

これを調査しているときに、この問題と対応する解決策が別の問題、ドメイン境界を越えて wcf サービスにアクセスする Silverlight xap の問題と混同されていることに気付きました。この問題には、wcf サービスをホストする Web サイトのルートにある clientaccesspolicy.xml ファイルが必要です。

そのため、最大の柔軟性と再利用のために、1 番目のサイトが 2 番目のサイトの xap ファイルにアクセスし、2 番目のサイトが 3 番目のサイトのデータ サービスにアクセスすることが可能です。

于 2009-12-25T22:10:02.777 に答える
2

Silverlight が .XAP ファイルのクロスドメインを要求する場合、コンテンツ タイプはapplication/x-silverlight-app である必要があります。また、他のドメインにクロスドメイン ポリシー ファイルが必要です。GL

于 2009-06-27T17:36:48.813 に答える