-1

Web サービス プロジェクトに Web セットアップ プロジェクトを追加して、かなり複雑なインストールをエンド ユーザーが簡単に行えるようにしようとしています。しかし、デフォルトが私の邪魔になっていて、それらを調整する方法がわかりません。

私の要件は次のとおりです。

  1. 新しい Web サイトとアプリ プールを作成する
  2. 新しいアプリ プールを作成するときは、.Net 4 に設定する必要があります。アプリ プールを実行するには、ユーザーが選択可能なユーザー アカウントを使用したクラシック モードです。
  3. C:\Program Files\<comapany name>\Services会社の基準を満たすために、フォルダーの下のカスタム パスに Web サービスをインストールします。
  4. アプリ プール用に選択したアカウントにログインと db_datawriter ロールを追加して、SQL データベースを作成します。
  5. SQL ステートメントを実行して初期データベースを構築する

SQL データベースとログイン (4 & 5) の作成は、インストール時にコードを実行できるようになるため、カスタム アクションを使用して実行できるようです。しかし、デフォルトでは、Web セットアップ プロジェクトでは、ユーザーは既存の Web サイトとアプリ プール (1 & 2) から選択することしかできず、画像を追加する以外にこのプロセスをカスタマイズすることはできないようです。これは、選択したウェブサイトが使用されます。

オプションは、インストール前に適切な Web サイトとアプリ プールを作成し、使用されなくなった場合は削除することです。その後、ユーザーは、私が作成した Web サイト/アプリ プールを選択するだけで済みます (理想的ではありませんが..)しかし、そのようなカスタム コードをアタッチするためのインストール前の手順はありません。また、IIS と確実かつプログラム的にインターフェイスする方法がわかりません。

Web セットアップ プロジェクトはこの段階では目的に合わないと思いますが、WIX や NSIS の学習に 1 日を無駄にする必要はないと思います。

4

2 に答える 2

-1

1 & 3) Web セットアップ プロジェクトでカスタム コードのプリインストールを実行する方法がないため、新しいアプリ プールを作成することはできません。インストール前の IIS。仮想ディレクトリの変更に必要なオブジェクトを見つけることができるように、CustomActionDataに渡すことで、必要に応じて既存のサイトの仮想ディレクトリを変更できますMicrosoft.Web.Administration.dll(ここからアイデアを得ました)。[TARGETSITE]Application

2)これはMicrosoft.Web.Administration.dll(ここからアイデアを得た/AppPool="[TARGETAPPPOOL]") を参照し、それを使用してアプリケーション プールのプロパティを変更することで実現されます。CustomActionの CustomActionData に追加して、appPool 名を Custom アクションに渡す必要があります。

参考までに - CustomActionData に渡すことができる利用可能なプロパティはここに記載されていますが、不完全です (たとえば、[TARGETAPPPOOL] と [TARGETSITE] を除く)。

このコードを使用して、アプリ プールを変更しました。

Microsoft.Web.Administration.ServerManager serverManager = new ServerManager();
var appPoolName = base.Context.Parameters["AppPool"].ToString();
var appPool = serverManager.ApplicationPools.SingleOrDefault( pool => pool.Name == appPoolName );
appPool.ManagedRuntimeVersion = "v4.0";
appPool.ManagedPipelineMode = ManagedPipelineMode.Classic;
serverManager.CommitChanges();

4 - 5)カスタム アクションから SQL 接続を開き、関連する SQL スクリプトを実行するだけでは、実際のアカウント (NT AUTHORITY\NETWORK SERVICEまたは) を追加することはできませんがNT AUTHORITY\ANONYMOUS、IIS が作成する仮想ユーザー アカウントを使用することはできますIIS APPPOOL\<app pool name>

于 2013-10-04T14:38:27.203 に答える
-2

洗練されたインストーラーを開発する必要があるが、インストーラー テクノロジの学習に 1 日も費やしたくない場合は、おそらくコンサルタントを雇ってそれを実行してもらうのが最善の策です。

于 2013-10-04T13:28:43.663 に答える