1

サーバーに ASP.Net アプリケーションをデプロイしています。ボタンのクリックでローカル システムの exe ファイルにアクセスできるかどうかを知りたいです。

私はこれに関する多くの記事をインターネットで読みました。ASP.Net アプリケーションがローカル プログラムにアクセスできないと言う人もいます。アクセス許可、ID、その他のものに依存することを示唆している人もいました。

ローカル マシンで同様のことを試みましたが、ローカル システム、ファイルのネットワーク サービスにアクセス許可を与え、さらにアプリケーション プール ID をローカル システムに変更した後でも、同じことを達成できませんでした...

それで、これが可能かどうかを確認したいだけです...

ここに私が実行しようとしているコードがあります

 Dim pstartinfo As New ProcessStartInfo()
        Dim p As New Process()

        pstartinfo.WorkingDirectory = "D:\VS2010Projects\SignatureCaptureWindows\bin\Debug"
        pstartinfo.FileName = "SignatureCaptureWindows.exe"
        pstartinfo.CreateNoWindow = False

        p = Process.Start(pstartinfo)

        p.WaitForExit()

        If (Not p.ExitCode.Equals(0)) Then

            Response.Write("Image Successfully saved in Database with ID = " + p.ExitCode.ToString())
            DisplaySavedImage(p.ExitCode)
        Else

        End If

locahost で実行すると、正常に動作します。ローカル IIS にデプロイすると、exe が開きません

4

1 に答える 1

1

アプリケーション プールのユーザーが、実行可能ファイルの場所へのアクセス許可と、それを実行するためのアクセス許可を持っている必要があります。

このクラスを使用して、Processほとんど何でも実行できます (必要に応じて別のユーザー資格情報を使用しても)。

アプリケーションプールはインタラクティブな環境で実行されないため、UI を使用してアプリケーションを実行しようとしても、通常はうまく機能しないことを忘れないでください (したがって、ウィンドウを開いてボタンをクリックすることはできません)。

Web サーバーはウィンドウなどと対話できないため、対話型ではない実行可能ファイルに制限する必要があります。


ユーザーが署名を入力して保存する必要がある特定のシナリオでは、署名をアップロードするか (画像ファイルが既に存在すると想定しています)、クライアント側でそのような画像を作成するcanvas必要があります ( JavaScript)。その後、画像をアップロードして保存できます。

于 2012-09-07T11:24:38.320 に答える