2010-12-29 8 views
4

現在、私はWinHostを一時的なホスティング環境として使用しているASP.NET 3.5/IIS7アプリケーションで作業しています。私は許可の問題であると信じているものでドラマを持っていますし、チケット発行プロセスは "あなた自身のステージ"に達しています。ここでDirectory.CreateDirectoryが共有ホスト上でUnauthorizedAccessExceptionをスローする原因

は私がやろうとしているものです:パス 「Eへ

アクセス:\ウェブ\マイアカウント\ MyFolderという\を

var dir = Server.MapPath("~/MyFolder/NewPath"); 
Directory.CreateDirectory(dir); 

そして、ここでは、私が取得しています応答ですNewPath 'は が拒否されました。

説明 現在のWeb要求の実行中に未処理の例外 が発生しました。 エラーの詳細と のコードの詳細については、 スタックトレースを確認してください。

例外の詳細: System.UnauthorizedAccessException:パス へ アクセス 'E:\ウェブ\マイアカウント\ MyFolderという\ NEWPATHは' 拒否 です。

スタックトレースは、CreateDirectory行が失敗していることを示しています。アプリケーションはローカルで正常に動作し、アプリケーションプールが実行しているIDには "MyFolder"パスへの書き込みアクセス権があります。どちらの環境でも、信頼レベルは「フル」に設定されています。

WinHostからのガイダンスは、次のとおりです。デフォルトで

のasp.netユーザーがサイトへのフル 権限を持っています。

WindowsIndentity.GetCurrent()。Nameは、アカウント固有のIDと思われる「W02 \ aspnet_17884」を返します。私の気持ちは、このアカウントは、アプリのファイルシステムへの書き込みアクセス権を持っていないということですが、私はこの上WinHostを求められたとき、私は受け取っ:

、あなたのアプリケーション 設定に を関連しているに実行されている問題。

私は を登録し、その後の質問は今ある理由は明らかであるDiscountASP.NET コミュニティフォーラム

であなたの 質問を投稿されることをお勧めしたい何をスタックオーバーフローについて:

誰もがどのようなアプリレベルの設定変更を提案できますか?これはホスティングサイトのアクセス許可の問題の可能性は高いですか?ありがとう。

更新:put the question up on the WinHost forumもあります。

+0

そのアプリケーションで偽装が有効になっていますか? – DmitryK

+0

また、その要求のIIS Webログをチェックします。具体的には、要求ステータスコード+サブステータスコードです。あなたは401.3を手に入れていますか? – DmitryK

+0

また、.NET Trust Levelをmediumに設定し、「適用」をクリックしてから「フル」に戻すこともできます。 – DmitryK

答えて

4

答えは... web deployが壊したものです。実際、その答えは厳密にはアクセス許可が単にそこに(期待どおり)存在しなかっただけですが、その理由はWebデプロイメントによって何らかの形で書き込み権限が削除されたように見えます。 ACLを公開する機能を持つWebデプロイメントの観点から見ると、WinHostではこれがWebサイトを含むディレクトリのアクセス許可を操作することを許可しているのはなぜですか?

私の質問(とWinHostの応答)に関するさらに詳しい情報は、スレッドNo write access to file systemのフォーラムにあります。

0

はい、 "W02用の\ aspnet_17884は、" フォルダを作成するための十分な権限を持っている必要があります。私はASPSPIDERで無料のアカウントを作成し、そこにあなたと同様の設定で非常に簡単なサンプルをアップロードすることをお勧めします。それがWinHost上で動作し、WinHost上で動作しない場合、aspspiderではどのように動作しているのか、それらのサーバでは動作していないことを表示できます。その後、それらを解決したり、新しいホストを取得したりします。