5

WPF アプリケーション (自己ホスト型) に WCF を使用したサービスがあり、「あなたのプロセスにはこの名前空間へのアクセス権がありません」という典型的なエラーが発生します。ユーザーは管理者権限を持つことができないため、.manifest を使用することは解決策ではありません。ポートは動的であり、アプリケーションは実行されるたびに空きポートを計算するため、アプリケーションは netsh によってリッスン ポートを数回挿入する必要があります。ドメイン管理者で ProcessStartInfo を使用しますが、プロセスを開始するにはユーザーに管理者権限が必要です。管理者としてアプリケーションを実行することも解決策ではないため、通常のユーザーがアプリケーションを実行し、プログラムがドメイン管理者として netsh によってポートを追加できるようにする必要があります。

私のプロセスは次のようなものです:

    ProcessStartInfo psi = new ProcessStartInfo("netsh", parameter);
        SecureString ss = new SecureString();

            for (int i = 0; i < adminPass.Length; i++)
                ss.AppendChar(adminPass[i]);

            psi.Password = ss;
            psi.UserName = Admin;
            psi.Domain = Domain;
            psi.Verb = "runas";
            psi.RedirectStandardOutput = false;
            psi.CreateNoWindow = true;
            psi.WindowStyle = ProcessWindowStyle.Hidden;
            psi.UseShellExecute = false;
            Process.Start(psi);

どうもありがとう

4

1 に答える 1

1

問題の可能な解決策については、このStack Overflow の質問に対する受け入れられた回答をご覧ください。回答で概説されているアプローチは、管理者が必要なコードを、呼び出されたときに適切な (別の) アカウントで昇格された特権操作を実行する Windows サービスに分割することです。

于 2012-01-11T14:30:11.920 に答える