2012-07-06 9 views
9

iis7を実行するサーバーにmvc3で作成したWebサイトを展開しようとしています。私はそれを私のラップトップ上のiis7を介して実行することができましたが、サーバーに置くときに、リモートからアクセスしようとすると403アクセス拒否エラーが発生し、試してみると「接続がタイムアウトしました」それをサーバー自体から表示します。IIS7 403 - アクセスが拒否されました

asp_regiis.exeを使用して、最新の.Net 4フレームワークを使用していることを確認しました。私はデフォルトを含む複数のアプリケーションプールを試しました。私は許可しました.net4 isapi。私は、IUSER、SERVER NETWORK、Authenticated Usersからのアクセスを許可する権限を変更しました。私はデフォルトのドキュメントリストが私のラップトップのiis7(これはうまく動作します)のものと同じであることを確認しました。

私はまた、サーバー上でうまく動作する他の複数のサイト(mvcではなくwebformsを使用しています)を持っています。

サーバーにファイルを渡す方法と関係がありますか?私はちょうどファイルを圧縮し、それらをサーバーに置いて(そしてそれらを解凍して)、iisを作成したディレクトリに向けました。

私には何が欠けていますか?

+0

あなたのアプリケーションの圧縮されたコピーは、IISが持つ唯一のものであることを意味しますか? – Tyrsius

+0

指定しないと申し訳ありません。私はそれを解凍し、ファイルをフォルダに入れました。 – Shattuck

答えて

14

私は先週、このエラーに直面し、それが多くのことが原因で発生することができます。

  1. .NETフレームワークの正しいバージョンがasp_regiis.exe
  2. 「runAllManagedModulesForAllRequests」でインストールまたは登録されていないされてMVCの正しいバージョンがサーバーにインストールされていない
  3. あなたのweb.configファイルでfalseに設定
  4. あなたは伯爵持っているあなたの要求
  5. を無視するルートを無視してきましたあなたのApplication_Startで例外が発生し、サイトが正常に起動しない

私の悩みとして、web.configのログディレクトリのパス値を既存のdirectoyに変更することを忘れてしまいました。

アプリケーションで設定エラーまたはエラーかどうかを知るには、VSで新しいデフォルトMVCプロジェクトを作成し、それを同じアプリケーションプールにデプロイする必要があります。

+0

これらの手順は正しい答えに私を導いた。それはいろいろなものになってしまった。しかし、主なものの1つは、適切なアプリケーションプールを選択したが、統合の代わりにクラシックを選択したことだった – Shattuck

+1

"runAllManagedModulesForAllRequests"がweb.configでtrueに設定されている – chamara

1

ファイルを解凍したフォルダに正しいアクセス権が設定されていることを確認する必要があります。また、そのサイトに認証設定がありますか?

+0

私はそのフォルダのパーミッションを変更しましたが、それは助けに見えませんでした。また、どの認証を参照しているのか分かりません。私はかなり新しくiisです。 – Shattuck

3

あなたのアプリを圧縮するのではなく、VSでプロジェクトを右クリックして公開し、ウェブサイトに展開した後で(いくつかのオプションがあります)、より良いでしょう。

IISの場合は、認証の問題のようです。匿名認証を許可してください。 IISマネージャーで、あなたのウェブサイトに移動し、認証モジュールをクリックし、「匿名認証」を有効にします。

「タイムアウト」の問題が奇妙な場合でも、それ以降はどうなるかを見てみましょう... デフォルトでは、デフォルトではウェブサイトのコンテンツを閲覧することができません。あなたはそれをやろうとしました。

どこにアプリを置いたのですか?場合によっては、プログラムファイルなどの特定のフォルダに置くことが問題になることがあります(アクセス設定用)。C:\ Websites \ MyAppなどのルートにインストールして、ユーザー権限の問題をテストしないでください。

3

いくつか確認してください。

  1. ファイルをIISでアプリケーションとして解凍したディレクトリを設定しましたか?そのアプリケーションは.NET 3.5/4.0を実行していますか?

  2. 上記で作成したアプリケーションを実行するアプリケーションプールのパイプラインは、統合モードまたはクラシックモードで実行していますか?

通常、MVCアプリケーションをデプロイする場合、403は許可の問題ではありません。ディレクトリブラウジングが許可されていないことを伝えています。これは、上記の2つの項目(またはIISのカスタムワイルドカードマッピング)がなくても、WebサーバーはMVCアプリケーションの基本であるルーティングの処理方法を知らないためです。

2
  1. すべてのデフォルトで新しいMVC 3インターネットアプリケーションを作成します。ローカルIISサーバー上で実行します。
  2. アプリをサーバーに移動し、アプリケーションとして追加します。
  3. サーバー上のローカルアクセスをテストします(IISマネージャーから80を参照)。
  4. 問題を理解するまで、ショットガンですべての権限をひっくり返さないでください。
  5. ウェブサイトをセットアップしながら私のブログhttp://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30-seconds.aspx
+0

許可がついているのはいい考えではありません。洞察に感謝します! – Shattuck

0

を参照してください、あなたはテスト接続をクリックして、IISの設定をテストしています。緑のダニを2つ手に入れましたか?そうでない場合は、認証設定を確認してください。フォルダアクセスの設定とアプリケーションプールの設定。

+0

答えをありがとう。それは別のものの束で終わったが、アプリケーションプールはその一部だった。 – Shattuck

0

aspxファイルの場合asp.netアプリケーションをインストールしていない場合は、IISでデフォルトページが設定されていることを確認してください。一度デフォルトでインストールすると、aspxファイルが作成されます。

関連する問題