7

clientaccesspolicyファイルのドメインノードでは、サブドメインまたはプロトコルにワイルドカードを指定できますが、ポートには表示されません。

特に開発時に、消費されるサービスがサードパーティでホストされている場合、ローカルホストasp.net開発サーバーで実行されているSilverlightアプリのローカルデバッグバージョンからのアクセスは、ノードで正常に機能します。

<domain uri="*"/>
<domain uri="http://*"/>
<domain uri="http://localhost:1234"/> 

(ここで、1234は特定の決定されたポート番号です)

ただし、フォームで指定した場合は機能しないように見えます

<domain uri="http://localhost:*"/>

これは、サービスを使用している開発者/プロジェクトが複数ある場合、またはasp.net開発サーバーのポートを指定しない場合に非常に煩わしいものです。

誰もが私が単にフォーマットを間違っているのか、それともこれがバグなのか、Silverlightによるclientaccesspolicyの処理の見落としなのかを知っていますか?

4

2 に答える 2

6

あなたが説明する動作は、次のように述べているドキュメントと一致しています。

次の 3 種類のワイルドカードを使用できます。

スタンドアロンの「*」ワイルドカード。このオプションは、同じスキームのすべてのドメインへのアクセスを許可するために使用されます。HTTP サービスは、すべての HTTP 呼び出し元を許可します。HTTPS サービスは、すべての HTTPS 呼び出し元を許可します。

「http://*」リテラル ワイルドカード。このオプションは、これが HTTPS サービスであっても、すべての HTTP 呼び出し元を明示的に許可します。

サブドメインのワイルドカード。このオプションは、指定されたドメインのすべてのサブドメインを許可するパスの最初のセグメント ("http:// .contoso.com" など) でワイルドカードを使用します。例として。http://web.contoso.comhttp://mail.contoso.comは許可されます。プレフィックスとしてワイルドカードが使用されない URI パス ( http://web . .com など) は許可されないことに注意してください。

http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

したがって、ポートのワイルドカードについては何もありません。ホストとドメインのワイルドカードを許可すると、(あなたの言うとおりです) 意味がありません。

于 2010-03-09T09:10:42.760 に答える
3

回避策:

SL アプリをホストしている Web サイトの[プロパティ] で、[ Web ] タブに移動し、[ポートの自動割り当て] を [特定のポート] に変更します。このようにして、既に説明したように clientaccesspolicy ファイルに localhost:1234 ポートを設定できます。また、どの開発者がプロ​​ジェクトを使用しても、ポートを変更する必要はありません。

これは完全な解決策ではありません。プロジェクトでポートをハード セットするよりも自動割り当ての方が常に優れているからです。しかし、試してみるには良いオプションです。

于 2010-08-30T03:29:31.293 に答える