2016-03-31 9 views
1

私はそれがどのように見えるかここでのVisual Studioの2015年私のプロジェクトでwwwrootの中にbinフォルダが存在しないのはなぜですか?

を空のプロジェクトasp.net 5を作成しました:

enter image description here

を私はwwwrootの内でなければならないいくつかのチュートリアルからbinフォルダを理解しています。

は、しかし、誰wwwrootの内部ビンともビンフォルダがないセンサーの観測プロジェクト内のどこにでも存在はありません。

なぜ私のプロジェクトでwwwrootのbinフォルダが存在しないのでしょうか?

+0

私はこれらのチュートリアルがASP.NET 5ではなく、ルートフォルダASP.NET 4以前を参照していると思われます。ASP.NET 5の前には 'wwwroot'フォルダはありません –

答えて

3

wwwrootフォルダは、静的ファイル(例:CSS、画像、JavaScriptなど)を提供する場所です。 binフォルダ内のファイルは、クライアント(ブラウザなど)には配信されないようにして、wwwrootフォルダには入れないようにしてください。

Here is some more informationにはwwwrootに含める必要があります。基本的に:

「Webサーバ上で動作しているとき、wwwrootフォルダはWebアプリケーションの 実際のルートを表すASP.NET 5にwwwrootフォルダを入力していないappsettings.jsonのような静的な ファイル、。 wwwrootにある にアクセスすることはできません。 は機密ファイルへのアクセスをブロックする特別なルールを作成する必要はありません。 機密ファイルへのブラックリストへのアクセスの代わりに、より安全なホワイトリストアプローチが採用されます。 wwwrootフォルダはウェブ リクエストでアクセスできます。

+0

しかし、私のビンはどこですか?開発から生産までファイルを移動するには私はbin.Butからファイルを移動する必要がありますが、自分のプロジェクトでbinを見つけることはできません。 – Michael

+0

@Michael: 'dnx publish'を使用して、その結果をIISにデプロイし、' wwwroot'フォルダを指すIISで新しいアプリケーションを作成してください – Tseng

+1

ASP.NETのドキュメントhttps:// docsを参照してください.asp.net/ja/latest/publishing/iis.html - ステップバイステップガイド – Tseng

2

フォルダには、1つのファイルAspNet.Loader.dllが含まれていました。 AspNet.Loader.dllは、IISによってアプリケーション(wwwrootフォルダの外にある)をロードするために使用されました。

この理由は、セキュリティが強化されているためです。 ASP.NET Core 1.0では、アプリケーションエントリをそのフォルダ(ASP.NET 4.5のすべての* .csファイルを含む)に向けませんが、アプリケーションのwwwrootフォルダを指します。

IISは、実際のアプリケーションファイルにアクセスすることができません。また、機密ファイルへの偶発的なアクセスを許可します。したがって、アプリケーションを実行するにはAspNet.Loader.dllが必要です。

その他のバイナリファイルはwwwroot/binにありません。

更新:

これはIIS内でホスト/実行されるようにヘリオスのために必要とされるために使用されます。 Helios has been deprecatedbeta8という2つの異なるサーバーを開発することは意味がないためです。したがって、wwwroot/binは新しいバージョンのASP.NETコアでは常に空になります。投稿や参照が見つかった場合は、古いベータ版を参照する可能性が高くなります。

今ケストレル、HttpListener経由とセルフホスティング(RC2以降でrc1-finalバージョンとASP.NET Core Moduleまで)HttpPlatformhandler経由でIISは、サポートされている走行モードです。 IISの背後でKestrelを使用することもできますが。

関連する問題