そろそろ regist という和製英語を止めよう
REGIST という英語は無い
秋元@サイボウズラボ・プログラマー・ブログ
この記事は昔からあり、私も現場で「regist」を発見する度に(口出しできそうなら)遠回しに使うのを止めるよう促すようにしています。
でも、未だに(日本の)色々なサービスの登録画面で regist.html とか regist.aspx とか regist.php とか、/regist/ とかとか……を見かけます。
秋元@サイボウズラボ・プログラマー・ブログ
この記事は昔からあり、私も現場で「regist」を発見する度に(口出しできそうなら)遠回しに使うのを止めるよう促すようにしています。
でも、未だに(日本の)色々なサービスの登録画面で regist.html とか regist.aspx とか regist.php とか、/regist/ とかとか……を見かけます。
SQL Server 2012 SP3 をダウンロード
SQL Server 2012 SP3 が登場していました。もちろん SQL Server 2012 のすべてのバージョンが対象です。スケーラビリティとパフォーマンスの向上も図られているようなので、SQL Server 2012 が稼働している場合は入れておきましょう。
Microsoft SQL Server 2012 Service Pack 3 (SP3)
https://www.microsoft.com/en-us/download/details.aspx?id=49996
Microsoft SQL Server 2012 Service Pack 3 (SP3)
https://www.microsoft.com/en-us/download/details.aspx?id=49996
ASP.NET で Validator エラーメッセージを取得する
ASP.NET の CustomValidator コントロールを使用している場合、エラー発生時は ValidationSummary に自動的にエラーメッセージが出力されるのだが、そのエラーメッセージをログに残したいとかで一括で取得したい場合は、こんな書き方ができます。
無料版 OneDrive の容量を増やす方法(2016年1月末まで)
先日、75TB も動画を保存する馬鹿のせいで容量が 5G へ減った無料版 OneDrive ですが、利用者の声を受けて、15G へのアップグレードキャンペーンを決定しました。申込み期限は 2016 年 1 月末までです。
OneDrive ストレージ 無料プラン 期間限定キャンペーンについて
キャンペーンサイトはこちら。
https://preview.onedrive.com/bonus/
OneDrive のアップグレード
こちらのサイトで申込みを受け付けています。方法は対象のアカウントでサインインし、「このアプリがあなたの情報にアクセスすることを許可しますか?」に「はい」と答えます。OneDrive ストレージ 無料プラン 期間限定キャンペーンについて
キャンペーンサイトはこちら。
https://preview.onedrive.com/bonus/
ローカルの SQL Server Express 2014 に Management Studio から接続
ローカルの SQLServer 2014 Express に Management Studio から Windows 認証で接続する場合のサーバー名(インスタンス)。
(localdb)\mssqllocaldb
SQL Server における引数の省略(ストアド・テーブル値関数)
SQL Server のストアドプロシージャとテーブル値関数で、オプション引数(省略可能な引数)を設定する方法です。ストアドプロシージャとテーブル値関数では呼び出し方が少しだけ異なるので注意が必要です。
SHA1 のテストを行ってくれるサイト
SHA-1 はその脆弱性から使用を中止するよう勧告されていますが、SHA-1 が使用されているかどうかドメインでチェックできるサイトがあります。
SHAAAAAAAAAAAAA
https://shaaaaaaaaaaaaa.com/
Dang. と表示されたら、それは危険ということです。
なんらかの対策を講じるべきですね。
SHAAAAAAAAAAAAA
https://shaaaaaaaaaaaaa.com/
Dang. と表示されたら、それは危険ということです。
なんらかの対策を講じるべきですね。
ファイルの上書きができない(エクスプローラー)
Windows でファイルコピーをする際に、ダイアログが何も出ないで強制的に「hoge - コピー.txt」という具合に上書きではなく、コピーされてしまう事があります。
なんらかの理由でエクスプローラーがおかしくなっている可能性が高いので、タスクマネージャーから explorer.exe を一旦終了させて再起動させると直る場合があります。
なんらかの理由でエクスプローラーがおかしくなっている可能性が高いので、タスクマネージャーから explorer.exe を一旦終了させて再起動させると直る場合があります。
ExpressWeb がサービス終了で延長もなし!
データ・ジャパン株式会社が提供していた ExpressWeb がサービス終了となりましたが、利用者に対しても今後の延長はせず、契約期間終了後はアプリケーションが自動的に削除されるようです。私はあと半年ほど期間が残っていますが、一応は半年前ほどをめどに利用者にメールを送っているようです。
後継としては同社のクラウドサービスを推薦していますが、これは月額 6,000 円となり、月額 280 円でやっていたサービスとは全く異なるものとなっています。
案内メールを読んでみると、あまり引き止める気もないようで、とりあえずコストかかるし利用者も少ないからスパっと切りたいようですね。
後継としては同社のクラウドサービスを推薦していますが、これは月額 6,000 円となり、月額 280 円でやっていたサービスとは全く異なるものとなっています。
案内メールを読んでみると、あまり引き止める気もないようで、とりあえずコストかかるし利用者も少ないからスパっと切りたいようですね。
今後、ASP.NET で何か実験したい時には、海外の格安 Windows 系ホスティングサービスや、クラウド系のサービスを利用するしかないようです。
ビルドで変更内容が反映されない
Visual Studio で、ビルド(リビルド)しても修正内容が反映されないことがあります。
ビルドしても反映しない以前のケースでは Bin 以下を削除すれば直ったのですが、今回は別の方法で正しくビルドされるようになりました。
http://www.remember-the-time.xyz/2010/04/blog-post.html
C# 既定のパラメーター値は、コンパイル時の定数である必要があります。
メソッドの引数を省略できるオプション引数。この引数には、しばしば定数を入れたい時もありますが、static メソッドで定数を指定しようとすると怒られてしまう。
private static string Hoge(Encoding enc = Encoding.UTF8) { return "ほげ"; }これではだめですね。
Chrome にて Hosts の変更を即時反映させる
Google Chrome の拡張機能である HostAdmin App は、hosts ファイルを簡単に編集することができるのだが、Chrome 自体のキャッシュが残っている場合は反映しないことがある。そんな時には、アドレスバーから以下の画面を開いてキャッシュを削除すると反映される場合がある。
chrome://net-internals/#dns
chrome://net-internals/#sockets
chrome://net-internals/#dns
chrome://net-internals/#sockets
hosts ファイルの権限をコマンドで
Windows 10 にて(おそらくそれ以前の 8.1 などでも)、hosts ファイルを変更したにも関わらず変更が反映されないことがある。
調べてみると権限を付与すれば良いとの回答に行き着くのだが、いろいろやった挙句、自分は以下のコマンドから権限を付与することで反映できた。
cacls %windir%/system32/drivers/etc/hosts /E /G Users:W
※ 管理者権限でコマンドプロンプトを実行する。
任意のユーザーの権限を与えたい場合は以下の様な感じらしい。
cacls %windir%/system32/drivers/etc/hosts /E /G " アカウント名 ":W
調べてみると権限を付与すれば良いとの回答に行き着くのだが、いろいろやった挙句、自分は以下のコマンドから権限を付与することで反映できた。
cacls %windir%/system32/drivers/etc/hosts /E /G Users:W
※ 管理者権限でコマンドプロンプトを実行する。
任意のユーザーの権限を与えたい場合は以下の様な感じらしい。
cacls %windir%/system32/drivers/etc/hosts /E /G " アカウント名 ":W
hosts ファイルを編集 Windows 10 で
Windows 10 の hosts ファイルは以前と同じく C:\Windows\System32\drivers\ect にあるのだが、ここに置いてあるファイルを直接編集しようとすると保存できない。
hosts ファイルを別の場所に移して編集、それから上書き(要管理者権限)することで編集することができる。
hosts ファイルを別の場所に移して編集、それから上書き(要管理者権限)することで編集することができる。
Facebook ブラウザのユーザーエージェントに注意
ユーザーエージェントで端末を判別する際に、かつての携帯電話(フィーチャーフォン)では、DoCoMo や KDDI や SoftBank を頼りにリダイレクトなどをかけていた。が、一部の iPhone で、KDDI が入っているがためにガラケー扱いになってそっちにリダイレクトしてしまっているケースを発見した。
カケホーダイライトプランへの変更は得…?
従来までのカケホーダイプランに比べて 1,000 円安いカケホーダイライトプラン。ほんとうに安いのかオンラインから変更しようとしてみたが…。
結論:
www
確かに契約時にそういうことになっているのは了承済みなんだろうが、こういう契約縛りがまかり通っていることがおかしすぎる。
どうやら ここ をみると、9,000 円のようだ。
12 ヶ月分 -1,000 円なので、解約金を支払っても 3,000 円ほど安くなる…のか?
カケホーダイライトプラン
結論:
- カケホーダイ & データ S パックの人は今より高くなる。
- カケホーダイ & データ M パック以上の人は安くなる。
カケホーダイライトプランへの変更
- My docomo へログインする。
- サービス一覧
- ご契約内容確認・変更
www
確かに契約時にそういうことになっているのは了承済みなんだろうが、こういう契約縛りがまかり通っていることがおかしすぎる。
カケホーダイプランの解約金
※ 細かいことは docomo に聞いてください。どうやら ここ をみると、9,000 円のようだ。
12 ヶ月分 -1,000 円なので、解約金を支払っても 3,000 円ほど安くなる…のか?
逆に高くなる
カケホーダイライトプランの説明をよく読んでみると、トラップが仕掛けられていることがわかる。カケホーダイライトプラン
- スマートフォン用のパケットパックの契約が必須。しかも 2G のライトプランは不可。
- 2 年間の縛りは相変わらず有効。
1 については、データ S パックという月 2G の最小プランは選べないようで、逆に 1,000 円高くなるとかw
2 も厄介。仮に解約金を支払って 3,000 円ゲット! となった場合でも、契約月を覚えていないとまずいことになる。もし仮に他のプランが登場した場合に解約する時期を間違えると、結局 3,000 円以上の損失を被るケースが発生すると思われる。
2 も厄介。仮に解約金を支払って 3,000 円ゲット! となった場合でも、契約月を覚えていないとまずいことになる。もし仮に他のプランが登場した場合に解約する時期を間違えると、結局 3,000 円以上の損失を被るケースが発生すると思われる。
携帯料金は安くすべき
総務省は携帯料金の値下げについての検討を始めたそうだ。
料金そのものが安くなることも大切だが、携帯電話といったすでに社会インフラの一つとなっているはずのものに対して、「意味不明な規約と縛りで難解になっている状況」こそ修正されるべき。
Google Chrome 45 で MacType がおかしい件
MacType を使用している環境で、Chrome 45 でサイトを見ると、文字がところどころ太字になっていることがある。
以下の方法で直るようだ。
以下の方法で直るようだ。
- アドレスバーに about:flags と入力して、Chrome の機能設定画面に入る。
- ラスタースレッドの数(Ctrl + F で検索もできる)を「1」に変更。
- Chrome を再起動する。
jQuery で文字を流す
インターネット黎明期に作られた個人のホームページや、その後 携帯電話でもよく使われていたマーキータグ(MARQUEE)。
ブラウザごとに若干の違いがあったり、HTML5 では廃止されるタグであることから、新たに作る場合は jQuery を利用したものがよく使われているようだ。なにより今ではスマートフォンへの対応は必須である。
jQuery のイベントハンドラ追加
特定の要素がクリックされた場合のイベントハンドラを追加する方法。
// ID = Hoge にクリックイベント追加 $(function () { $("#Hoge").click(function () { alert('ほげ'); }); });
jQuery form の disabled 切り替え
disabled が false だから活性ということなのです。
// txtHoge を 活性化 $('#txtHoge').prop("disabled", false); // txtHoge を 非活性化 $('#txtHoge').prop("disabled", true);
jQuery css で取得した値の px を削除する
jQuery の css で、要素の幅(width)や高さ(height)を取得しようとすると、返ってきた値に単位(px)が付いてしまう。このままでは計算に使えないので、perseInt 関数で数値に変換する必要がある。
// px が付いてしまう。 var hogeWidth1 = $("#hoge").css("width"); // px なし。 var hogeWidth2 = parseInt($("#hoge").css("width"));
Visual Studio 2015 文字コードによっては文字化けする
Visual Studio 2015 での文字コード
![]() |
パンくずが文字化けしたw |
Visual Studio 2015 では、Shift_JIS などの Unicode 以前の文字コードで保存してある C#, VB ファイル(.cs とか .vb)があるとコンパイルできなかったり、文字化けが発生したりという厄介な挙動をする場合もあるようです。
まぁ、今さらなんで Unicode じゃないファイルが混ざっているの? というそもそもの話もありますが、昔(Visual Studio 2003とかで)に作られたものだと、そういうことも多々あります。
自分がはまったのは、ASP.NET で、C# や VB のソース部分に日本語を設定してあって、それを画面に表示する処理の箇所で文字化けが発生しました。
ID Manager から KeePass へ移行
ID Manager から KeePass へ乗り換え。ID Manager は使いやすくて満足なのだが、なにぶん更新が停まっているソフトウェアはそれ自体リスクである。
Windows 10 の Google 日本語入力
Windows 10 にアップグレードしたところ、規定の IME が MS-IME に戻されてしまったので戻す。いったんアンインストール後、再インストールすると戻るらしいが、規定の IME を変更するキーシーケンスも効かなくなってしまった。
探したところ、以下の場所にあった。
文字列の先頭と末尾を指定文字列で削除
String.TrimStart メソッドや、String.TrimEnd メソッドは、char[] を引数にとるため、先頭の文字列を除去したい場合は string を引数として渡せるよう拡張メソッドを定義する。
文字列を単純に消すだけなら System.Replace で十分だが、今回の例のように必ず先頭のみ削除したい場合はこういう方法を使うべき。
先頭文字を除去する拡張メソッド
public static class Extension { public static string TrimStart(this string target, string trimString) { return target.Substring(trimString.Length); } }
末尾の文字を除去する拡張メソッド
public static class Extension { public static string TrimEnd(this string target, string trimString) { return target.Substring(0, target.Length - trimString.Length); } }
使用方法
string address = "京都府京都市上京区岩栖院町4-15-6 京都府アパート"; // 京都市上京区岩栖院町4-15-6 京都府アパート string afterValue1 = address.TrimStart("京都府"); // 京都府京都市上京区岩栖院町4-15-6 string afterValue2 = address.TrimEnd("京都府アパート"); // 京都市上京区岩栖院町4-15-6 string afterValue3 = address.TrimStart("京都府").TrimEnd("京都府アパート");
文字列を単純に消すだけなら System.Replace で十分だが、今回の例のように必ず先頭のみ削除したい場合はこういう方法を使うべき。
UPDATE で足し算・引き算
更新時に数値の計算
更新時に更新先の列を使用して計算。-- UPDATE なので Where も入れてみる。 UPDATE Hoge SET Count = Count - 1 WHERE HogeNo = 10
更新時に日付の計算。
ちなみに、日付もいける。-- UpdateDate を一日足す。 UPDATE Hoge SET UpdateDate = DATEADD(d, 1, UpdateDate) WHERE HogeNo = 10
astah* community 7 UML ツール
astah* community 7 の注意点
2015年6月24日にリリースされた astah* community 7 だが、今バージョンより商用利用不可となった。公式サイトによると、今後はこのツールを商用利用したい場合には、以下の方法しかないようだ。ページにアクセスする前にアセンブリがコンパイルされているかどうか確認してください
Web サイトプロジェクト
アセンブリ 'App_Web_index.aspx.efxued90' を読み込めませんでした。ページにアクセスする前にアセンブリがコンパイルされているかどうか確認してください。発行しようとする ASP.NET のプロジェクトが、Web アプリケーション プロジェクト ではなく、Web サイト プロジェクト の場合は、aspx ファイル等もビルド(プリコンパイル)した環境にあるものと同じものが配置されていないとエラーとなる。つまり、すべてのファイルを公開環境にコピーしないと動作しない(Web アプリケーションプロジェクトの場合は、dll のみ差し替え等の柔軟な動作となる)。
Web サイトプロジェクトは今から新規作成することはないだろうが、ずっと改修を続けているサイトではたまに出くわすので注意する。
Web アプリケーション プロジェクトと Web サイト プロジェクト - msdn
https://msdn.microsoft.com/ja-jp/library/dd547590(v=vs.100).aspx
static クラスの、自身のクラス名を取得する。
通常のクラスであれば、自身のクラス名取得は簡単だ。
this.ToString();ところが static クラスについては this と打った瞬間にこんな残念なエラーとなってしまう。
割り当て、呼び出し、インクリメント、デクリメント、待機、および新しいオブジェクトの式のみがステートメントとして使用できます。以下のように取得する方法がある。
// クラス名は ConsoleApplication1。 Type me = new System.Diagnostics.StackFrame().GetMethod().DeclaringType; // ConsoleApplication1.Program string className2 = me.ToString();
AsEnumerable() が使えない
DataTable の定義にない
古いソース(.NET Framework 2.0 時代のもの)を改修する場合によくあるのだが、AsEnumerable メソッドは拡張されたメソッドであるため、プロジェクトの参照設定で System.Data.DataSetExtensions アセンブリを追加しなければならない。アセンブリの追加を行えば、インテリセンスにも表示されるようになる。
DataTableExtensions.AsEnumerable メソッド - msdn
https://msdn.microsoft.com/ja-jp/library/system.data.datatableextensions.asenumerable%28v=vs.110%29.aspx
MultiLine TextBox の Length は改行込みの長さ
ASP.NET の TextBox を MultiLine に設定すると、以下のような挙動となる。
このような入力を行うと、TextBox1.Text.Length の戻り値は 7 となる。改行コードもカウントされているためだ。
TextBox1.Text.Length
長さを取ろうとすると、テキストボックス内の改行を含めた長さを返す。このような入力を行うと、TextBox1.Text.Length の戻り値は 7 となる。改行コードもカウントされているためだ。
TextBox の行数を取得
改行コードは機種によって依存するのだが、以下のような方法で行数を取得できる。int linage = TextBox1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None).Length; // 改行がなくても 1 のため。 linage--;Length で取得した文字数から行数を引けば、文字数のみ修得することができる。
DataTable の特定行を ラムダ式で検索・削除
DataTable の検索と削除
DataTable が未だに残っているシステムは多く、表題の表な細かい要望も作りによってはある。行を抽出するためには Select メソッドがあるが、これは場合によっては遅いので、改修するならラムダ式で検索し、その行を削除する書き方をしたほうが良い。DataTable dt = new DataTable(); dt.Columns.Add("ProductCd", typeof(string)); DataRow dr1 = dt.NewRow(); dr1["ProductCd"] = "HGE-10"; dt.Rows.Add(dr1); DataRow dr2 = dt.NewRow(); dr2["ProductCd"] = "HOG-20"; dt.Rows.Add(dr2); DataRow dr3 = dt.NewRow(); dr3["ProductCd"] = "HGH-20"; dt.Rows.Add(dr3); DataRow[] dr = dt.AsEnumerable().Where(x => x.Field<string>("ProductCd").EndsWith("10")).ToArray(); // この書き方も可能。 //Array.ForEach(dr, r => dt.Rows.Remove(r)); foreach (DataRow r in dr) { dt.Rows.Remove(r); }
TextBox の MaxLength が効かない
ASP.NET の TextBox における MaxLength
TextBox の MaxLength プロパティは、TextMode が MultiLine になっていると動作しないというバグが存在する。しかもこれは .NET Framework 4.5 になっても修正されていない。JavaScript でゴリゴリ対処する
やや泥臭いが、これに関しては JavaScript で回避するしかない。テキストボックス
<asp:TextBox ID="TextBox1" runat="server" Rows="5" TextMode="MultiLine" keypress="return CheckLength();" onblur="TrimValue();"></asp:TextBox>JavaScript
// keypress イベントにセットする関数。 var maxlen = 100; function CheckLength() { var textbox = document.getElementById("<%= TextBox1.ClientID %>").value; if (textbox.trim().length >= maxlen) { return false; } else { return true; } }半角文字であれば、上記の関数で問題はないだろうが、全角文字のチェックはできない。つまり、日本語環境では上記のチェックも役に立たない。これを対応させるのは OS やブラウザの差異によりかなり厳しいようだ。
また、半角であっても貼り付け(ペースト)られると全く意味がないので、貼り付け用のチェックを追加する。
// onblurイベントにセットする関数。 function TrimValue() { var textbox = document.getElementById("<%= TextBox1.ClientID %>").value; if (textbox.trim().length > maxlen) { document.getElementById("<%= TextBox1.ClientID %>").value = textbox.substr(0,maxlen); return; } else { return; } }
jQuery で制御する手もある
jQuery が使えるなら、上記の例を一挙に解決することができる。しかも、変換前の日本語(全角)もカウントする。素晴らしい。と思ったら、Chrome でしか動かない。だめだこりゃ…。
$(function() { var maxlength = 100; var tb = $('textarea[id$=TextBox1'); $(tb).keyup(function() { var len = $(this).val().length; if (len > maxlength) { var s = $(this).val().slice(0, maxlength); $(this).val(s); } }); });小手先だが、このような JavaScript で対応するしかないのだが、肝心なことは サーバー側でのチェックを必ず入れること である。
正規表現で URL を抽出
C# の正規表現で、URL から値を抽出したい場合の例。
// 例えば、以下のページからアクセスしてきた場合の、hoge1 を修得する。 // http://exsample.com/category/hoge1/index.aspx Regex regex = new Regex("/category/(?<dir>.*?)/", RegexOptions.IgnoreCase | RegexOptions.Singleline); Match m = regex.Match(Request.UrlReferrer.OriginalString); // テスト用 //Match m = regex.Match("http://exsample.com/category/hoge1/index.aspx"); if (m.Success) { string dir = m.Groups["dir"].Value; }
マネージパイプラインモードの統合について(Managed Pipeline Mode)
ASP.NET 設定が、統合されたマネージ パイプライン モードで適用されないことが検出されました。
ASP.NET 2.0 の互換性について
ASP.NET 2.0 時台に作成したアプリケーションを、マネージパイプラインモードが「統合」に設定されたアプリケーションプールにアタッチするとアプリケーションが開始できない。マネージパイプラインモードを「クラシック」に設定するか(推奨されない)、Web.config の設定を変更する必要がある。今回のケースでは、以下の要素を追加したところ動作するようになった。
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> </system.webServer>以下に細かいガイドラインがある。
IIS 7 での ASP.NET 2.0 の互換性に影響する変更点
https://technet.microsoft.com/ja-jp/library/ff454090.aspx
Ajax.NET の互換性
validateIntegratedModeConfiguration="false" を Web.config に追記することで統合モードでの動作は確認できた。しかし、この状態では AJAX.NET が動作しない。[Ajax.AjaxMethod] 属性を付与したクラスを動作させるためには、さらに Web.config に追記する必要がある。<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules> <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </modules> <handlers> <remove name="WebServiceHandlerFactory-Integrated" /> <add verb="POST,GET" name="Ajax" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer>
ASP.NET の customerrors
ASP.NET において、web.config の customerrors 設定をよく忘れるのでメモ。
業務用途だと独自のエラー画面に飛ばすことが多いが、これだと画面からはエラー内容がわかりづらいケースが多いので(ログを探すのも面倒…)、パッと確認したい時のメモ。
業務用途だと独自のエラー画面に飛ばすことが多いが、これだと画面からはエラー内容がわかりづらいケースが多いので(ログを探すのも面倒…)、パッと確認したい時のメモ。
エラーを画面に出したい
<customErrors mode="Off" />
独自のエラー画面を出したい
defaultRedirect に URL を指定する。URL が間違えていると、IIS の 404 エラーが発生するので注意する。<customErrors mode="On" defaultRedirect="error.html" />
リモートクライアントのみエラー画面を出したい
この設定を行うためにはクライアントの設定もしてあるはずなので、通常はあまり使わないかもしれない。<customErrors mode="RemoteOnly" />いずれの場合も特に注意すべきは mode の値。それぞれ Off, On, RemoteOnly であり、OFF や off は許容されないので気をつける。
Google 日本語入力に顔文字(Kaomoji)を追加
Google 日本語入力は標準では顔文字辞書がないので、MS-IME 用の顔文字辞書を追加する。なお、以下の取り込み方法で、自分で作成した辞書についても同様に取り込むことができる。
顔文字辞書のダウンロード
いずれの顔文字でもよいが、テキスト形式(.txt)であること。新規辞書の登録
なお、ATOK 用の辞書も同様の方法で取り込むことができる。
登録:
投稿 (Atom)