0

最初に、私の本当の問題を述べさせてください。ACS 管理サービスを呼び出すコードがあり、テストの実行ごとに他のテストを壊すことなく、統合テストを同時に実行できるようにしたいと考えています。つまり、複数の人/ビルド サーバーがこれらのテストを同時に実行する可能性があるため、それらがすべて同じ ACS サービスの名前空間を使用している場合、同時実行の問題が発生します。

これを実現する最も簡単な方法は、テスト ランナーごとに新しい一意の ACS サービス名前空間を生成することだと思いますが、私が知る限り、新しいサービス名前空間 (または管理クライアント キー) を自動的に作成する方法はありません。私が間違っている?これについて別の方法はありますか?

新しいサービス名前空間を作成する自動化された方法は、非常に役立ちます。

4

2 に答える 2

1

管理ポータルは WCF RIA サービスにアクセスする Silverlight アプリケーションであるため、技術的には可能です。

十分に深く掘り下げると、いくつかの有用な情報が見つかります。

これは DomainContext の一部です。

  public sealed class AppFabricDomainContext : DomainContext
  {

    public AppFabricDomainContext(Uri serviceUri)
      : this((DomainClient) new WebDomainClient<AppFabricDomainContext.IAppFabricDomainServiceContract>(serviceUri, true))
    {
    }

    ...

    public InvokeOperation CreateServiceNamespace(IEnumerable<string> serviceNames, string parentProjectKey, string serviceNamespace, IEnumerable<string> packageKeys, string regionKey, Action<InvokeOperation> callback, object userState)
    {
      Dictionary<string, object> dictionary = new Dictionary<string, object>();
      dictionary.Add("serviceNames", (object) serviceNames);
      dictionary.Add("parentProjectKey", (object) parentProjectKey);
      dictionary.Add("serviceNamespace", (object) serviceNamespace);
      dictionary.Add("packageKeys", (object) packageKeys);
      dictionary.Add("regionKey", (object) regionKey);
      this.ValidateMethod("CreateServiceNamespace", (IDictionary<string, object>) dictionary);
      return this.InvokeOperation("CreateServiceNamespace", typeof (void), (IDictionary<string, object>) dictionary, true, callback, userState);
    }
  }

この情報を見つけるのは簡単で、機能させるのは簡単でした... それは別のことです。認証部分を例にとると、Windows Live で認証し、WCF RIA サービスを呼び出すときにそれらの資格情報を使用する必要があります。

幸運を!

于 2012-08-07T11:33:53.510 に答える
1

あなたは正しいです。それは今日では不可能です。シナリオをより詳細に説明して、名前空間を再作成する必要を回避するための代替ソリューションがあるかもしれません。

于 2012-08-06T18:03:53.183 に答える