2011-06-17 14 views
2

私は数時間にわたってこれと戦い続けてきました。MVC3公開とIIS 6

私は、Webアプリケーション(MVC3、.net4、Visual Studio 2010製)をサーバーに公開しようとしています。最終的にすべてのグーグルがthis articleにつながりますが、これは参考にされていません。それによると、IIS 6(MVCと.net4がインストールされている、それは2k3サーバです)上で動作するMVC3はちょうどうまくいくはずです。セットアップが異なると、私には異なる問題が起こりますが、何も問題はありません。デフォルトの設定では、私は "ディレクトリリストが拒否されました。この仮想ディレクトリではコンテンツがリストされません。"ディレクトリブラウジングを有効にすると、サイトの直接性がわかりますが、これは有用ではありません。

IISには既定のページを使用するオプションがありますが、MVCはこれを使用していないと考えました。プロジェクトを開始したときにプロジェクトに「default.aspx」はなく、デバッグテストのローカルサーバーを使って正常に動作していました。デフォルトのページが必要な場合は、作成方法がわかりません。必要がない場合は、IIS 6で適切なページを提供するためにどの設定を使用する必要がありますか(mvcモジュールを使用していますか?)。

これは私の最初のWebアプリケーションですので、おそらく基本的なものがありません。プロジェクトからいくつかの重要なファイルを削除することは可能です。

編集:違いがあるかどうかはわかりませんが、サイトはドメインのルートに公開されていません。 URLはwww.company.net/directoryになります。

編集:ビジュアルスタジオで新しいMVC3アプリケーションを作成しようとしましたが、これはデフォルトのものだけで、すぐにサーバーに公開されました。同じエラー。そのIISの間違いなく何か。

答えて

15

これを試してください。

  1. IISマネージャを開きます。
  2. リストアイテム
  3. あなたのウェブサイトを選択し、次にプロパティを選択します。 \ WINDOWS \ microsoft.net \枠組み\ v4.xxxxx \ ASPNET_ISAPI.DLL
  4. :.mvc拡張子とパスを追加 C - アプリケーションの設定
    アプリケーションの拡張子に
  5. ゴー設定
  6. をクリック
  7. 仮想ディレクトリへ(あなたはそれが実行されません確認した場合)、そのファイルが存在する
01を検証UNCHECK
  • 上記のようにワイルドカードアプリケーションマップ上
  • は同じパスを挿入します

    Phil Haackには良い記事があります:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

  • +1

    私はいつもポイント番号7:Dを忘れていました。おかげです。 –

    +0

    と私はポイント8を忘れていました。IISはそれ自身の法則です!あなたの助けてくれてありがとうMangesh – csharpforevermore

    1

    私は、ローカル開発からWebサーバーに移行する際に、正確な問題がありました。何らかの理由で、サーバーに適切なマッピングが設定されていませんでした。ハンドラマッピングの設定を確認し、MVCに関連するすべてのマッピングがリストされていることを確認します。 ".cshtm"と ".cshtml" - それぞれの拡張子にはいくつかあるはずです。

    +0

    私は月曜日に戻ってくるときにこれを試してみます – Tyrsius

    +0

    申し訳ありませんが、私たちのITスタッフは病気になりました。私は彼なしでIISを編集できませんでした。これらのハンドラが追加され、仮想ディレクトリエラーが発生します。 – Tyrsius

    1

    私は同じ問題がありました。上記のすべての手順に加えて、IISで新しいWebサイトを作成する必要もありました。すべての制作ウェブサイトは「デフォルトのウェブサイト」の下で実行されました。私は各アプリケーションを仮想ディレクトリとしてセットアップしました。私の「既定のWebサイト」はASP.NET 2.0を実行します。これは他のすべてのアプリケーションでも問題ありません。これは、ASP.NET 4.0が必要なので、MVCアプリケーションでは機能しません。

    1. のinetpubの下に新しいディレクトリを作成した新しいアプリケーションプール
    2. を作成し、それが
    3. をwwwroot4_0と呼ばれるが、この場所に作成された
    4. を自分のアプリケーションを移動:私は次のようでした問題を解決するために

      新しいWebサイトを開き、ASP.NETバージョンを4.0に設定します。新しいウェブサイトの下で

    5. が、私はそれを別のポートを与え、ポート81
    6. は、仮想ディレクトリとして、新しいアプリケーションを作成し、私の新しいウェブサイトの下
    7. は、拡張子を含めるように自分のアプリケーションの敗走を変更

      を.aspxの

      new {controller = "Home"、action = "index"、{{controller} .aspx/{action}/{id} "のように、URLは です。 "、id = UrlParameter.Optional} //パラメータのデフォルトは です。

    私がアプリケーションにアクセスする方法はこれです: www.mydomainname.com:81/MyAppName/Default.aspx

    これは誰にも役立ちます場合は私に知らせてください。ありがとう。

    関連する問題