2016-05-12 4 views
12

Azure Web AppでASP.NET MVCビューをプリコンパイルする方法はありますか(特にVSTSのリリース管理で公開された場合)?Azure Web AppでASP.NET MVCビューをプリコンパイルする

各ビューが一度ヒットすると、ページはその後非常に迅速にレンダリングされます。しかし、その最初の遅れはユーザーにとっては厄介なものになることがあり、各ページに触れることをスクリプト化する方法はありません。

VSTSのビルド/リリースプロセス(私はVisual Studio BuildビルドステップとAzure Web Appリリースタスクを使用しています)を変更する必要があるかどうか、またはAzure Web Appインスタンスで何かを実行する必要があるかどうかはわかりませんそれが解放された後(または全く別のもの)

aspnet_compilerを公開すると何とかなるかもしれません(クラウドサービスのWebロールを参照して見たことがあります)が、それを動作させることはできません。 Azureのポータルにコンソールを介して、

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot" 

を呼び出す

はうまく実行(およびいずれかが存在する場合、エラーを発見する)が、起動時間への影響はありません - 最初の時間がまだかかるビューを打ちます長い間。

これは正しい方向ではないかもしれません。

私はRazorGenerator(.MSBuildのnugetパッケージを含む)を見てきましたが、実際にはうまくいきませんでしたが、実際にはリリース時にプリコンパイルするためにプロジェクトに多くの変更を加えることに躊躇しました。

私は現在、VSTSでVSVCを使用していますので、Kudu/Gitの統合(いくつかの記事に基づいてプリコンパイルを起動するように見えます)は私が知る限り利用できません。

他のアイデア?あなたは「/ Pを:PrecompileBeforePublish = true」を追加することができます

+0

あなたのリリースタスクがあなたのビューで最初に低速になると、サイトでクラウドベースのWebパフォーマンステストを実行しているのだろうか? – majita

答えて

15

で引数のステップ「Visual Studioのビルド」: enter image description here

を次にタスクは、ビルドプロセス中にaspnet_compiler呼び出すと展開のためのプリコンパイルされた出力を生成します。

+1

Azure App Serviceが 'msdeploy.exe'呼び出しを介して直接公開されている場合、' PrecompileBeforePublish'引数を使用できますか? –

+0

興味深い。私はうまくいかないと言われました。しかし、明らかにそうです。まあ、素晴らしい。ありがとう! – Tim

+9

これは、ビューごとにdllを作成します。引数に/ p:UseMerge = true/p:SingleAssemblyName = AppCodeを追加すると、読み込みが速い単一のdllしか持てません。 –

0

ビジュアルスタジオ2013+では、[ビルド] - > [プロファイル]を選択します。プロファイルを選択し、「設定」を選択します。 [設定]の下にある[ファイルの公開オプション]を展開し、[公開中にプリコンパイル]オプションをオンにします。

+0

また、「プリコンパイルされたサイトを更新可能にする」のチェックを外すことを忘れないでください。 – Mik

関連する問題