S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

IIS7のWebアプリ上でCryptAcquireContext関数でfalseが返ってきた

ここで暗号化は解決したつもりだったけど、Windows Server 2008 R2のIIS7に載せて動かすと、CryptAcquireContextでfalse(何か判らんけど失敗した)が返ってきた(>_<)
事象は異なるけど、CryptAcquireContext() で NTE_EXISTS (0x8009000F) のエラーとなるの記述を参考にして、

アプリケーションプールの設定で「ユーザープロファイルの読み込み」をTrueにする

で解決した。
なんとなく、Windows 7(Vista?)/Windows Server 2008(R2?)以降でアクセス権周りでやられっぱなしな感じかな。。。
イベントログ関係のAPIでもあったし。


調査中、DLLがWin32なのか?というところから、Part 3. ASP.NET 2.0 Web アプリケーションの 64 ビット対応 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogsにある

アプリケーションプールの「32 ビットアプリケーションの有効化」フラグを True に変える

を試してみたけど、これとは関係なかった。