2009年2月24日 更新
TRUSTWORTHY
SQLCLR で開発している。 開発では問題無いのだが、テストサーバーへアセンブリを配置して実行したところ、以下のエラーが出た。
——————————————————————————–
メッセージ 10314、レベル 16、状態 11、行 80
アセンブリ ID 65591 をロード中に Microsoft .NET Framework でエラーが発生しました。
サーバーのリソースが不足しているか、PERMISSION_SET が EXTERNAL_ACCESS または UNSAFE に設定されていて、
アセンブリが信頼されていない可能性があります。
クエリを再実行するか、アセンブリの信頼関係の問題を解決する方法をマニュアルで確認してください。
このエラーの詳細:System.IO.FileLoadException:
ファイルまたはアセンブリ ‘XXX99999, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’、
またはその依存関係の1 つが読み込めませんでした。
セキュリティに関連したエラーが発生しました。
(HRESULT からの例外: 0x8013150A)
System.IO.FileLoadException:
場所 System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
場所 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, StackCrawlMark& stackMark, BooleanforIntrospection)
場所 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity,
StackCrawlMark& stackMark, BooleanforIntrospection)
場所 System.Reflection.Assembly.Load(String assemblyString)
——————————————————————————–
さてさて、これは一体なんでしょうか?
色々調べてみると、デタッチしてアタッチすると上記エラーが出ることがあるそうな。
——————————————————————————–
ALTER DATABASE [<DB名称>]
SET TRUSTWORTHY ON
GO
——————————————————————————–
を再度実行すると、正しく動作しました。
アタッチすると、TRUSTWORTHY の設定が初期化されてしまう・・・。
それって、デタッチ&アタッチでデータベースがコピー出来る利点から外れていませんか・・・。
投稿者:K・K
山梨県へ嫁ぎ、在宅でお仕事させて頂いています。言葉や風習の異なる 土地は、驚きも多いですが楽しく過ごしています♪富士山だけでなく、ほうとう・桃・葡萄・温泉などいろいろ楽しいモノがあるので、ぜひ一度遊びに来てください!