msi インストーラー パッケージで展開したい自己ホスト型の WCF サービス アプリケーションがあります。エンドポイントは http ポート 8888 を使用します。インストール後に Windows 2008 でプロジェクトを起動するには、プログラムを管理者として実行するか、netsh で http 設定を編集する必要があります。
"netsh http add urlacl url=http://+:8888/ user=\Everyone"
インストーラー クラスから http 設定を編集したいと考えています。したがって、Install() メソッドから次のメソッドを呼び出します。
public void ModifyHttpSettings()
{
string parameter = @"http add urlacl url=http://+:8888/ user=\Everyone";
System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo("netsh", parameter);
psi.Verb = "runas";
psi.RedirectStandardOutput = false;
psi.CreateNoWindow = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
System.Diagnostics.Process.Start(psi);
}
この方法は、英語版の Windows では機能しますが、ローカライズ版では機能しません (ローカライズ版ではグループ Everyone の名前が異なります)。また、Environment.UserName を使用して、少なくとも現在ログオンしているユーザーにアクセスを許可しようとしました。ただし、インストーラー クラスはユーザー SYSTEM で実行される msi サービスによって実行されるため、これも機能しません。したがって、 Enviroment.UserName は SYSTEM を返しますが、それは私が望むものではありません。
すべての (または少なくとも現在ログオンしている) ユーザーに、msi インストーラー クラスからセルフホステッド WCF サービスへのアクセスを許可する方法はありますか?