0

C# で ASP.NET のページを作成して、exe ファイルを実行しました。以下のコードでボタンとイベントを作成しました。

        ProcessStartInfo info = new ProcessStartInfo(@"C:\inetpub\wwwroot\Share\myfile.exe");
        info.UseShellExecute = false;
        info.RedirectStandardInput = true;
        info.RedirectStandardError = true;
        info.RedirectStandardOutput = true;

        //info.UserName = dialog.User;
        info.UserName = "username";
        string pass = "MY pass";
        System.Security.SecureString secret = new System.Security.SecureString();
        foreach (char c in pass)
            secret.AppendChar(c);
        info.Password = secret;
        Process.Start(info);   

コンパイラから実行したところ、正常に実行されましたが、ローカルホストでプロジェクトを公開したとき、何のアクションもありませんでした。何が問題ですか?

4

3 に答える 3

3

何を試しましたか?権利関係の問題でしょう。デフォルトでは、Web サイトは外部実行可能ファイルを実行できないと想定されています。これは、重大なセキュリティ リスクになるためです。おそらく、外部プログラムの実行を伴わない、問題に対する別の解決策があるでしょうか?

いずれにせよ、Web サイトから直接実行可能ファイルを実行しないことを強くお勧めします。本当にプログラムを実行する必要がある場合は、(WCF 経由で?) メッセージを受信できる単純な Windows サービスを記述して、隔離された環境でプログラムを実行することができます。

于 2012-05-13T21:29:34.477 に答える
0

asp.netでアプリケーションを実行(実行)するには、次の方法を使用しました:

1) 他のサイトのコードを参照してください:

また

2) web.configの「assemblyIdentity」フィールドに、次のように「偽装」パラメータを追加しました。

から変更

<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>

<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" impersonate="true" userName="myuser" password="123123"/>

(最初に、そのフォルダーに対する sql/windows ユーザーとパスワードのアクセス許可を設定する必要がある場合があります)。

2)次に、asp.netでコマンドを使用しました(おそらくasp 2.0でも):

System.Diagnostics.Process.Start("C:\\inetpub\\my_application.exe" , "with-any-parameters");
于 2014-07-23T17:30:38.657 に答える