ashx内でユーザーエージェントを取得


context.Request.UserAgent

contextには他にも様々な情報が格納されている。

サーバー接続のオープン処理の遅延のためログインプロセスを完了できませんでした


Management Studioにて突然ログインできなくなった。
原因を色々と探ってみるもよくわからなかった。

DNSキャッシュをリセットすると直った。
ipconfig /flushdns

理由は不明...。

ashxでのSessionオブジェクト


public class Test : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
}

System.Web.SessionState.IRequiresSessionStateを継承する。
セッションIDを取得する場合は context.Session.SessionID と指定。

Fatal error encountered during command execution.

例えばアプリからSQLを発行するこんなケース。

UPDATE test SET name = @1 WHERE id = @0

パラメータに値を入れていないとエラーになる。
配列にしてまとめてセットしている時などには注意する。

PowerPoint2007で文字が自動的に小さくなるのを止める

PowerPointで文字を入力中、文字数が多くなってくると自動的にフォントのサイズを小さくして強引にプレースホルダに合わせてしまう。これはオートコレクトのオプションから変更できる。


「テキストをタイトルのプレースホルダに自動的に収める」
「テキストを本文のプレースホルダに自動的に収める」
チェックオフ。

Excel 現在日時

=NOW() → 2010/2/10 10:00

ただし、フォーマットを揃える場合はTEXT関数とやらを使うらしい。
=TEXT(NOW(),"yyyy/MM/dd") → 2010/02/10
=TEXT(NOW(),"yyyy/M/d") → 2010/2/10
=TEXT(NOW(),"yyyy/M/d") & "現在" → 2010/2/10現在

ちなみにこれ、○日前とかも簡単にできる。
一週間前 =TEXT(NOW()-7,"yyyy/MM/dd") → 2010/02/03

やはりExcelは旧VBに感覚は近いか。
適当に指定しても何とかなったりする。

C#なら、String.FormatやString.FormatやDateTime.ToString("yyyy/MM/dd")である。

iモードでのpng

シミュレータで確認してみたら、iモードはpng非対応だったのね……。
gifの特許がらみの対応でそのまま引き継いでいるのだろうが、これはさすがに盲点だった。

アプリケーションの仮想パス

アプリケーション直下に戻したい場合などにたまに使う。

Request.ApplicationPath

ここからさらに下のフォルダに潜る場合、
"/"を忘れずに入れてから文字列を連結する。

Windows7がシャットダウンできない


よくあるトラブルのひとつに「シャットダウンできない」というものがある。
Vista Ultimate → 7 Ultimate にアップグレード後、全く問題なく使えていると思って喜んでいたのだが、シャットダウンしようとしたら「シャットダウンしています...」で止まった。

シャットダウンできないという原因にはハードウェアに原因がある場合が多く、原因を調べていくとサウンドボード(M-AUDIO DELTA 1010)くらいしかついていないので、これがかなり怪しかった。


ためしにデバイスを無効にすると正常にシャットダウン。
どうやらドライバが古かったようだ。

7をクリーンインストールした場合には新しいドライバを入れるはずなのでこういうトラブルはないのだろうが、アップブレードの場合はこういうこともあるようだ。

MicrosoftのWindows 7 アップグレード徹底ガイドは非常に役に立つ。

ハードウェアテストで確かに互換性の確認が取れていなかったが、アップグレード後に普通に使えていたので気がつかなかった。当たり前のようにドライバは最新にするべきであるね。

最上位ディレクトリの先頭に .. を使用することはできません。

例えばこんな感じ。

Image im = (Image)Page.Master.FindControl("Img");
im.ImageUrl = "../../images/01.jpg";

動的に相対パスを指定し、ルートを超えてしまったケース。

htmlで指定場所が間違っている時には落ちるわけではないのだが、プログラム内で指定した場合には落ちる。これは意外と気づかない。

Connector/NETでMySQLから日本語で検索できなくてハマる

.NETから単純なSELECT文を発行してutf8_general_ciのフィールドを検索。
しかし、データが取得できない。
phpMyAdminからSQLを発行してみると普通に取得できる。

いったい何が原因なのかと探っていたら、英数では取得できる。
ここで文字コードの問題だと気づく。

テーブルに文字コードを設定していればいいのかと思ったが、
接続文字列にもちゃんと文字コードを記述してあげないとダメらしい。

Charset=utf8
を追加したら解決。

MySQLはとにかく文字コードがらみでハマることが多いように思う……。

XAMPP Liteはインストールしなくても起動できる


XAMPP Liteをトップレベル(c:\xampp, d:\xampp等)に配置すると、直接起動することができる。
setup_xampp.batは実行しなくても良い。


これはお手軽だ。