BlogEngine.NET&SQL CE 4.0ではまったのでメモ

Posted by 技術ブログ by Strawhat.net on Friday, June 10, 2011

このサイトの構築ではまったのでメモ

このブログはBlog Engine.NETを使っています。 データはSQL CE4.0に保存するように、setup/SQL_CE/ReadMe.txtに書かれたように

  1. ‘%ProgramFiles(x86)%\Microsoft SQL Server CompactEdition\v4.0\Private’からDLLを/binにコピー
  2. SQL_CE_for_ASP.NET_4.0_Web.ConfigをWeb.configとしてコピー
  3. BlogEngine.sdfをApp_Dataフォルダにコピー

と手順を踏んだのですが、WebMatrixでは動作したのに、ホスティング先のExpressWebでは動作せず…。

エラーの原因を調べた結果、binフォルダに配置したSQL CE 4.0のDLL(System.Data.SqlServerCe.dll)が 読み込めていないようだったので、以下の設定をWeb.Configに入れたところ動作するようになりました。

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" />
            <bindingRedirect oldVersion="4.0.0.0" newVersion="4.0.0.1" />
        </dependentAssembly>
   </assemblyBinding>
</runtime>

GACに入った別のSystem.Data.SqlServerCe.dllを見てるのかもしれません。

これでブログが動くようになったので、Windows Phone 7のことを書いていきます。