-1

サーバーからデータを読み取り、それらを txt ファイルに変換するだけの C# アプリがあります。コードはもともと VB 2005 または VB 2008 のものでした (退職した前の同僚から継承されたものです)。したがって、すべてのコードを VB 2010 にインポートしました。デバッグすると、コードは完全に正常に動作します。exeファイルまたはスタンドアロンとして公開するたびに、「パス[C:\ blah blah blah.txt]へのアクセスが拒否されました」というメッセージが表示されます。他に何も変更されていないため、フォルダーのアクセス許可を変更して、所有者と最大に設定しようとしましたユーザーの権利。

私のサーバーは Windows Server 2008 R2 です

編集:IISはWebサーバーではなく、データベースを保持する通常のサーバーであるため、IISを使用していません。

編集 2: ユーザーに管理者権限がないのに「管理者として実行」した場合にのみ、エラーなしで実行できます

4

4 に答える 4

1

その理由はおそらく、アプリケーションがクリックワンスアプリケーションであり、ユーザーコンテキストで実行されるときに昇格が必要になるためです。したがって、C:\ blah blahにアクセスして変更を加える権限がない場合は、変更することもできません。アプリケーションを使用します。

あなたへの私の推薦?

私は個人的にテキストファイルをUsersDocumentsフォルダーまたはUsersProfileに関連するものに書き込みます。そうすれば、アプリケーションは深刻な制限のある管理された環境で実行されるため、一度クリックしたアプリケーションを昇格する必要はありません。

これで少し問題が解決することを願っています。

于 2012-07-25T08:45:41.967 に答える
1

exeファイルのプロパティに移動し、「管理者として実行」チェックをオンにしました。

于 2012-07-25T07:45:42.327 に答える
0

システムドライブのルートに書き込まないでください...それがここでの問題です(新しいOSには、任意のアプリケーションがシステムルートを汚染するのを防ぐための権限が設定されています).

于 2012-07-25T07:46:04.853 に答える
0

ファイルを含むフォルダーを右クリックし、[プロパティ] を選択します。セキュリティタブに移動します。[権限の編集] をクリックします。[追加] をクリックします。ユーザー名の入力を求められたら、 と入力しEveryoneます。必要に応じてアクセス許可を設定します (少なくとも読み取り、可能であれば作成/変更)。

次に、実行可能ファイルを非管理者として実行してみてください

代わりにEveryone、アプリを使用できるようにしたい特定のユーザーのユーザー名、またはユーザーが属する Windows セキュリティ グループのユーザー名を使用できます。

于 2012-07-25T08:13:45.260 に答える