2011-01-11 129 views
32

私はasp.net mvc-2 Webサイトをサーバーに(dotnetpanelを使用して)デプロイしました。しかし、このエラーが発生するデフォルトのドキュメントが要求されたURLに対して構成されておらず、サーバー上でディレクトリ閲覧が有効になっていません。

A default document is not configured for the requested URL, and directory browsing is not enabled on the server. 

私は何が必要ですか?そのdotnetpanelベースのホスティングサーバー。

答えて

23

あなたのホストはどのバージョンのIISで動作していますか?試みる1つのことは、ルートフォルダにダミーのdefault.aspxファイルを置くことです(これはMVCが動作しているときには使用されませんが、この問題を取り除くことができます)。

+6

default.aspxページを追加しました。問題 –

+1

Default.aspxにlogin.aspxへのリダイレクトを追加して問題を解決しました – devHead

+7

MVCアプリケーションで.aspxファイルを使用する理由は何ですか?ウェブフォームではないビューを使用します。これは答えではなく、ハックです。 –

16

誤差は2つのうちの1つが正常に動作していないことを伝えるためにしようとしている

IIS 7に適用され、次のとおりです。

  • デフォルトのページ(例えば、index.htmlに、defaulはありません。あなたの サイト用のこれは、既定のドキュメントの「機能」が完全に無効になっているか、誤って構成されている可能性があります。
  • ディレクトリの参照が有効になっていません。つまり、 サイトの既定のページを提供していない場合、ユーザーがhttp(リモートの「Windowsエクスプローラ」など)を使用してサイトのディレクトリコンテンツ をナビゲートできるようにすることができます。

上記の問題を診断して修正する方法については、次のリンクを参照してください。

http://support.microsoft.com/kb/942062/en-us

、これらの問題のどちらが問題である場合は、チェックするために別のものは、IISマネージャの下で(アプリケーションプールは、Webサイト用に構成されていることを確認してくださいあなたのウェブサイトを選択して、上の「基本設定」をクリックすることです右端)例えば、あなたのweb.configファイルで構成されたtargetFrameworkとしてIISマネージャで、「アプリケーションプール」の下で同じ.NET Frameworkバージョン()で構成されています

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <httpRuntime targetFramework="4.0" /> 
    </system.web> 

なぜこの私はわからないんだけどそのような一見無関係のエラーメッセージを生成するだろうが、それは私のためにやった。

+1

.NETのバージョンが一致していることを確認してください。ありがとう! – CodeLander

30

答えがマークされていると、エラーを排除できますが、MVCが機能しなくなります。この問題に対する答えは、system.webServerでweb.configファイルに次の行を追加することです:

<modules runAllManagedModulesForAllRequests="true" /> 
+2

この修正されたMVC 5 WebAPI2サイトは、IIS 7.5に.net 4.5をサーバーにインストールした(4.5.1ではなく) –

+1

ありがとう!これはASP.Net MVC 5 IIS7のSBSの問題を解決しました。 –

+1

これは実際には答えに受け入れられるべきです。 MVC4を紺色に公開した後、私はこのディレクトリまたはpage_エラーを表示する権限を持っていませんでした。私は3日間立ち往生したが、これで修正された。ありがとう! –

0

は必ずmain.aspxようindex.aspxとないものとして名付けられ、あなたのデフォルトのページを持っていることを確認しますまたはhome.aspx。 また、クラス内のすべてのプロパティがデータベースのテーブルのプロパティと正確に一致することも確認してください。データベースと同期していないプロパティを削除します。それが私の問題を解決しました! :)

0

このクラスにデフォルトルートを追加しましたか?

public class RouteConfig { 
    public static void RegisterRoutes (RouteCollection routes) {` 
     //"HomePage" is the root view of your app 
     routes.MapRoute (
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { 
       controller = "Home", action = "HomePage", id = UrlParameter.Optional 
      } 
     ); 
    } 
} 

その後、Global.asax。CSはのApplication_Start()メソッドに次の行を追加します

RouteConfig.RegisterRoutes (RouteTable.Routes); 

私はthisポスト次MVC4からMVC5へのアップグレードをしたと私はそのラインは、私が忘れてきた理由でコメントした後、私はこの問題を抱えていました。

希望すると便利です。

0

これは、特定のページで指定するのではなく、Project Properties-> Webタブの "Project Url"(例:http://localhost:59088/api/Product)にapi urlを配置して、 " テキストボックス。これにより、Visual Studioが先に進み、ProjectName/api/ProductというAPPを作成します。これにより、デフォルトのページが表示されます。 \プログラムファイル(x86の)\ IIS Expressと犯人は、Global.asaxのは、持っているという事実にあるかもしれないので、

>.\appcmd.exe delete APP "ProjectName/api/Product" 
0

のようにそれを削除するために、Appcmd.exeのを使用します。これを元に戻す唯一の方法は、Cに行くことですmvcプロジェクト内の間違ったディレクトリに置かれました。私の場合は/ Viewsの下に置かれていましたが、プロジェクトのルートフォルダの下に置いておく必要がありました。

あなたの場合、あなたは正反対かもしれません - いくつかのテストを実行し、あなた自身で見てください。

https://stackoverflow.com/a/41467885/863651

1

IISを使用して、私のASP。ネットのウェブサイトをデバッグしようとしたときに、私は正確に同じエラーに直面し、我々は単にF5を打ったときに、ウェブサイトを実行するためのVisual Studioで使用されるサーバーを表現します。

私は単純に戻って私のweb application projectに行ってきました - >右の私のウェブサイトを開始したときに、私がロードされることを意図したWebページ(私の場合はStudentPortal.aspx)をクリックします - 下図のように>コンテキストメニューから[Set as Start Pageオプションを選択します。それは次回の作業から始まりました。

enter image description here

根本原因:。私は基本的にウェブサイトの既定のドキュメントですスタートページが正しく設定されていなかったか、開発中に何らかの形で台無しになっていたと結論を

+1

これは私にとって最高の解決策でした。私の設定は正しくありませんでした。 – jhhoff02

関連する問題