2017-05-01 13 views
1

新しいプロジェクトでは、マルチテナントのシナリオをサポートする必要があります。テナントごとにアプリケーションを持つことが最も安全なモデルであることが推奨されているので、我々はSystemAppsTenantAppsプログラムでアプリケーションとサービスを作成する

テナントサービスは

を経由して(内部で)アクセスできる必要があり

に私たちのアプリを論理的に分離していますファブリック:/ TenantApps_ {TenantId}/SomeTenantSvc

クライアントアプリケーションを作成および削除し、その状態を確認するシステムサービスを用意します。これらのアプリケーションには、デフォルトのサービスがあり、そのサービスはサブスクリプションに基づいてアプリケーション内の他のサービスを開始/停止します。

理論的には良いですが、私の人生にとってコードから新しいアプリケーションやサービスを作成する場所を見つけることはできません。私はFabricRuntimeと関係があると思っていますが、詳細は細かいことがわかりません。

誰かが正しい文書に例またはリンクを付けることができれば、私は感謝します。

答えて

3

Here'sドキュメント。

これは、既存のアプリケーションタイプを使用して、コード内のアプリケーションインスタンスを作成行う方法です:

string appName = "fabric:/MyApplication"; 
string appType = "MyApplicationType"; 
string appVersion = "1.0.0"; 

var fabricClient = new FabricClient(); 

// Create the application instance. 
try 
{ 
    ApplicationDescription appDesc = new ApplicationDescription(new Uri(appName), appType, appVersion); 
    await fabricClient.ApplicationManager.CreateApplicationAsync(appDesc); 
} 
catch (AggregateException ae) 
{ 
} 

およびサービスについて

:できるだけ早く私は同様の例を見つけるポストとして

// Create the stateless service description. For stateful services, use a StatefulServiceDescription object. 
StatelessServiceDescription serviceDescription = new StatelessServiceDescription(); 
serviceDescription.ApplicationName = new Uri(appName); 
serviceDescription.InstanceCount = 1; 
serviceDescription.PartitionSchemeDescription = new SingletonPartitionSchemeDescription(); 
serviceDescription.ServiceName = new Uri(serviceName); 
serviceDescription.ServiceTypeName = serviceType; 

// Create the service instance. If the service is declared as a default service in the ApplicationManifest.xml, 
// the service instance is already running and this call will fail. 
try 
{ 
    await fabricClient.ServiceManager.CreateServiceAsync(serviceDescription); 
} 
catch (AggregateException ae) 
{} 
+0

典型的な、私はこれを最初に試してみましょう、LoekDありがとう! –

関連する問題