it技術:web開発
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:web開発 [2018/09/17 10:10] – [Web開発(ASP.NET系)] yajuadmin | it技術:web開発 [2022/02/18 10:19] – [IE11で正しくレイアウトされない] yajuadmin | ||
---|---|---|---|
行 1: | 行 1: | ||
====== Web開発(ASP.NET系) ====== | ====== Web開発(ASP.NET系) ====== | ||
- | [[http:// | + | ===== はじめに ===== |
- | [[http:// | + | * [[http:// |
+ | | ||
===== IISのバージョンとWindows OS ===== | ===== IISのバージョンとWindows OS ===== | ||
- | ^OS^IIS^ | + | ^サーバーOS^クライアントOS^IIS^ |
- | |Windows Server 2016|IIS 10| | + | |Windows Server 2019| |IIS 10| |
- | |Windows Server 2012 R2|IIS 8.5| | + | |Windows Server 2016|Windows 10|IIS 10| |
- | |Windows Server 2012|IIS 8.0| | + | |Windows Server 2012 R2|Windows 8.1|IIS 8.5| |
- | |Windows Server 2008 R2|IIS 7.5| | + | |Windows Server 2012|Windows 8|IIS 8.0| |
- | |Windows Server 2008|IIS 7.0| | + | |Windows Server 2008 R2|Windows 7|IIS 7.5| |
- | |Windows Server 2003|IIS 6.0| | + | |Windows Server 2008|Windows Vista|IIS 7.0| |
- | |Windows 2000|IIS 5.0| | + | |Windows Server 2003| |
+ | | |Windows XP|IIS 5.1| | ||
+ | |Windows 2000| | ||
===== HTMLカラーコード ===== | ===== HTMLカラーコード ===== | ||
- | [[http:// | + | * [[http:// |
+ | * [[https:// | ||
===== 画面レイアウト(Bootstrap) ===== | ===== 画面レイアウト(Bootstrap) ===== | ||
行 20: | 行 25: | ||
* ライセンスは MIT License で、商用利用も可能です。 | * ライセンスは MIT License で、商用利用も可能です。 | ||
- | ※ASP.NETのBoostrap 3.3.7は、jQuery | + | <wrap em> |
- | 参照 | + | ==== 参照 |
* [[http:// | * [[http:// | ||
- | * [[http://bootstrap3.cyberlab.info/|Bootstrap3日本語リファレンス]] | + | * [[https://getbootstrap.jp/docs/4.2/ |
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
行 30: | 行 35: | ||
===== jQuery ===== | ===== jQuery ===== | ||
- | 2017/03/21現在の最新版は「jQuery 3.1.1」となる。 | + | 2022/02/18現在の最新版は「jQuery 3.6.0」となる。 |
^1.1x系|Internet Explorer 8(IE8)の下位バージョンに対応| | ^1.1x系|Internet Explorer 8(IE8)の下位バージョンに対応| | ||
行 105: | 行 110: | ||
[[http:// | [[http:// | ||
+ | ==== ビューにデータを渡す ==== | ||
+ | コントローラー側にてView(myModel)としてデータクラスを引数を渡す。 | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== アイドル状態のワーカープロセスのスワップアウト ===== | ===== アイドル状態のワーカープロセスのスワップアウト ===== | ||
IISのアプリケーションプールのアイドル状態のタイムアウトは20分になっている。\\ | IISのアプリケーションプールのアイドル状態のタイムアウトは20分になっている。\\ | ||
行 117: | 行 127: | ||
ASP.NETアプリケーションは初回のページ呼び出しがあった時に、アプリケーションの初期処理(ビルドなど)が実施されます。そのため、ファーストユーザーがページにアクセスした時に遅いと感じることがあります。 | ASP.NETアプリケーションは初回のページ呼び出しがあった時に、アプリケーションの初期処理(ビルドなど)が実施されます。そのため、ファーストユーザーがページにアクセスした時に遅いと感じることがあります。 | ||
- | IISのApplication Initialization機能を有効にしておくと、起動時にIISがアプリケーションを呼び出しておいてくれます。そのため最初のユーザーがアクセスした時の体感速度を向上させることができます。 | + | IIS 8.0 で標準搭載された |
+ | ==== Application Initialization ==== | ||
+ | IIS は、既定でサービス開始直後にワーカープロセスを起動しません。ユーザーからのリクエストを受けてからワーカープロセスを起動し、その中で ASP.NET の初期処理などを行っています。結果、最初にリクエストを行うユーザーは、通常時と比べて応答に時間がかかる (初期化が完了するまで待たされる) こととなります。 | ||
+ | |||
+ | この初回リクエストにかかるコストを軽減するための機能として Application Initialization が提供されており、自動的にワーカープロセスを起動させる機能と、仮想的な要求を内部的に発行し、該当の初期化処理を事前に終わらせる機能、の組み合わせで実現されています。\\ | ||
+ | [[https:// | ||
==== 設定 ==== | ==== 設定 ==== | ||
- | [[http:// | + | [[http:// |
+ | |||
+ | ^アプリケーションプール設定|startMode=" | ||
+ | ^Webサイト設定|preloadEnabled=" | ||
+ | ^Web.Config|doAppInitAfterRestart はデフォルト false \\ skipManagedModules はデフォルト false| | ||
+ | |||
+ | <code xml web.config> | ||
+ | < | ||
+ | < | ||
+ | <add initializationPage="/ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === 参照 === | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |アプリプールのリサイクル後にasp.net mvc webappをウォームアップするにはどうすればよいですか?]] | ||
+ | * [[https:// | ||
+ | |||
+ | ==== 調査 ==== | ||
+ | IIS applicationInitializationリクエストは内部で行われるため、W3Cログには表示されません。 | ||
+ | ただし、Initializer.aspxページでリクエストを確認し、ユーザーエージェントを確認すると、「IIS Application Initialization Warmup」か「IIS Application Initialization Preload」が表示されます。 | ||
+ | |||
+ | <code csharp Initializer.aspx> | ||
+ | namespace SampleWebApp | ||
+ | { | ||
+ | public partial class Initializer : System.Web.UI.Page | ||
+ | { | ||
+ | protected void Page_Load(object sender, EventArgs e) | ||
+ | { | ||
+ | // | ||
+ | System.Threading.Thread.Sleep(10000); | ||
+ | |||
+ | // ログ・ファイルerr.logへの出力ストリームを生成 | ||
+ | StreamWriter objSw = new StreamWriter( | ||
+ | Server.MapPath(" | ||
+ | true, Encoding.GetEncoding(" | ||
+ | |||
+ | // 日付、ソース・コード、エラー・メッセージ、エラー原因となった | ||
+ | // メソッドをタブ区切りテキストで記録 | ||
+ | StringBuilder objBld = new StringBuilder(); | ||
+ | objBld.Append(DateTime.Now.ToString()); | ||
+ | objBld.Append(" | ||
+ | objBld.Append(Request.UserAgent); | ||
+ | objSw.WriteLine(objBld.ToString()); | ||
+ | objSw.Close(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code xml web.config> | ||
+ | < | ||
+ | < | ||
+ | <add initializationPage="/ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <code txt init.log> | ||
+ | 2020/03/04 16: | ||
+ | </ | ||
==== 参照 ==== | ==== 参照 ==== | ||
行 169: | 行 252: | ||
これでも駄目なら、ソリューションファイルとプロジェクトを一から作り直す。 | これでも駄目なら、ソリューションファイルとプロジェクトを一から作り直す。 | ||
+ | ===== リソースが見つかりません ===== | ||
+ | POSTを使用すると、「リソースが見つかりません」というエラーが表示されます。\\ | ||
+ | GetSQLDataのコントローラーが見つからないか、IControllerを実装していません。 | ||
+ | |||
+ | 原因としてコントローラーの指定が間違っている。 | ||
+ | |||
+ | <code javascript 例> | ||
+ | postAjax(' | ||
+ | ↓ | ||
+ | postAjax('/ | ||
+ | </ | ||
===== 発行先だと動作しない ===== | ===== 発行先だと動作しない ===== | ||
Visual Studio上のWebブラウザでは動作したが、発行した環境ではエラーになる。\\ | Visual Studio上のWebブラウザでは動作したが、発行した環境ではエラーになる。\\ | ||
行 337: | 行 431: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | ==== IE11で正しくレイアウトされない ==== | ||
+ | 互換性表示されると、IE7モードで動作する。IISログにcompatible; | ||
+ | |||
+ | 再現環境\\ | ||
+ | * インターネットオプション[接続][LANの設定][プロキシ設定]にプロキシサーバを登録。 | ||
+ | * 詳細設定から、対象のIPアドレスが例外になるように登録。 | ||
+ | * 互換表示設定で「イントラネットサイトを互換表示で表示する」チェック有り。 | ||
+ | |||
+ | 対応として、互換表示にならないように常に標準モードになる< | ||
+ | <meta http-equiv=" | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== javascript のコールバック関数の引数指定 ==== | ||
+ | 関数バインディング(bind())を使う | ||
+ | |||
+ | < | ||
+ | let sayHello = function(who) { | ||
+ | alert(' | ||
+ | }; | ||
+ | |||
+ | setTimeout(sayHello.bind(null, | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== フォントアイコンの検索 ==== | ||
+ | Font Awesomeのアイコンを日本語、英語、カタカナで簡単一発検索!\\ | ||
+ | [[https:// | ||
+ |
it技術/web開発.txt · 最終更新: 2022/10/28 10:22 by yajuadmin