0

わかりました。会社として、最初の MVC3 アプリケーションを Web サーバーにデプロイしました。.NETを処理するように設定されています

サーバーは Windows Server 2008 と IIS 7 を使用しています。

ただし、ブラウザで URL を指定すると、このエラーが発生します。

ディレクトリの一覧表示が拒否されました この仮想ディレクトリでは、コンテンツの一覧表示が許可されていません。

次のような既知のパスを指す場合:

http://websitename/subfolder/subfolder/Views

同じエラーが発生します。明らかに、ww が Razor ページに直接移動しようとすると、次のようになります。

http://websitename/subfolder/subfolder/Views/Pages/Index.cshtml

ご想像のとおり、.cshtml ファイルをダウンロードします。ブラウザーは .cshtml を読み取ることができないため、生成された .html を読み取ります。

私が指す場合:

http://websitename/subfolder/subfolder/Views/Pages/Index.html

何も見つかりません。

Visual Studio を介して localhost で動作します。公開されると、起動ページは単なるルートであり、実行され、VS を介して正しい場所に移動します。

私の質問は、Web サーバーで生成された html を手動でどのように指定するのですか、またはサーバーのルートに移動したときに開始ページが見つからない理由がありますか?

IIS をチェックして、正しいものがローカル コピー 'true' に設定されていることを確認しました。また、web.config ファイルに runAllManagedModulesForAllRequests=”true” を追加しました。

正しい方向への助けやポイントをいただければ幸いです。

4

3 に答える 3

2

MVC では、ブラウザーを介してビューにアクセスするのではなく、コントローラーのアクションにアクセスすると、ビューが返されます。

したがって、アクセスしようとする必要があります

http://websitename/controller/action

コントローラー部分は、「コントローラー」ビットが最後にロブされたコントローラーの名前です。たとえば、AccountController の Login アクションにアクセスするには、次の場所に移動します。

http://websitename/Account/Login

アクションは、コントローラーで次のように定義する必要があります

public ActionResult Login(string username, string password)
于 2012-08-31T09:16:58.747 に答える
1

.NET 4 がインストールされていないようです。OS、IIS のバージョンなど、サーバーの設定を明確にしていただけますか?

于 2012-08-31T09:16:00.783 に答える
0

何らかの理由で、要求が IIS から ASP.Net ランタイムに送信されません。これは、使用している IIS のバージョン (使用しているサーバー OS にも依存します) に応じて、異なる方法で構成されます (または、まったく構成する必要はありません)。MVC-Routing の一部の古いバージョンの IIS (バージョンなど) では、すべてのルートに .aspx (またはその他の拡張子) を追加し (Global.asax を参照)、すべての .aspx 要求を次の場所にルーティングするように IIS を構成する必要があります。 ASP.Net サブシステム。IIS の新しいバージョンでは、これらすべてが必要なわけではありません。

MS の次のチュートリアルが役立つ場合があります

于 2012-08-31T09:16:15.637 に答える