0

.NET3.5で作成された既存のアプリケーションがあります。問題のコードは、FileUploadコントロールとそのSaveAsメソッドを使用しています。過去6か月間は完全に機能しましたが、最近プロジェクトを.NET 4.0にアップグレードしたところ、メソッドが呼び出されるたびに「パスへのアクセス(...)が拒否されました」というメッセージが表示されます。devモードではローカルで正常に動作しますが、prodサーバーでは失敗します。.NET 4.0で実行するようにWebサイトをアップグレードし、アプリプールで実行されるアカウント(ネットワークサービス)が完全に制御できることを確認しました。.NET 4.0にアップグレードする以外は、プロジェクトに変更はありません。何かアイデアや提案はありますか?前もって感謝します。

4

1 に答える 1

2

まず、そのパスへの「Everyone」アクセスを (一時的に) 許可することによって、これが実際にアクセス許可の問題であることを再確認します。簡単なテストを実行してください...うまくいく場合は、間違いなくアクセス許可の問題を確認しています。

次に、EventViewer で例外を確認すると、ファイルを書き込もうとしているユーザー ID がわかります。それでもうまくいかない場合は、FileMon を使用して試行のログを確認し、そこから必要な情報を確実に取得できます。

これらの問題は厄介な問題であり、問​​題の 99% は、Microsoft が IIS または .NET の更新ごとにこれが機能する方法を変更することです。バージョンごとに一貫していれば、これが発生することはありません。

于 2010-04-26T23:00:56.603 に答える