1

WCFサービスでクライアントアクセスポリシーをホストするために、次の操作があります。

[OperationContract]
[WebGet(UriTemplate = "/clientaccesspolicy.xml")]
XElement RetrieveClientAccessPolicy();

public XElement RetrieveClientAccessPolicy()
{
    String policy = @"<?xml version=""1.0"" encoding=""utf-8""?>
                    <access-policy>
                        ...
                    </access-policy>";

    return XElement.Parse(policy);
}

Silverlightアプリからサービスに接続しようとすると、クライアントアクセスポリシーが見つからないため、エラーが発生します。ここでそれを探しています:

http://MyServer/clientaccesspolicy.xml

IEで参照すると、404が表示されます。ただし、ここを参照すると、clientaccesspolicy.xmlファイルを見つけることができます。

http://MyServer/server/clientaccesspolicy.xml

クライアントアクセスポリシーファイルをそのディレクトリからではなくルートからアクセスできるようにする操作を取得するにはどうすればよいですか(サーバーはサービスの名前です)。

4

1 に答える 1

1

WCF呼び出しを介してclientaccesspolicy.xmlを返そうとしているため、IISを使用してサービスをホストしていないと推測しています。

自己ホスト型のWCFサービスの場合、RetrieveClientAccessPolicy()App.configで別のサービスエンドポイントを設定し、呼び出しを契約する必要があると思います。http://localhostそのサービスには、メインサービスのベースアドレスが。のbaseAddressがありますhttp://localhost/server

于 2010-06-14T20:12:54.523 に答える