2009-03-13 9 views
2

TimeZoneInfoクラスには、MayLeakOnAbortのホスト保護属性があります。SQL Server 2005から.NET TimeZoneInfoクラスにアクセスするにはどうすればよいですか?

これは、SQL Server CLRからアクセスできないようです。しかし、回避策はありますか?

+0

OPは、新しい質問を作成して回答をよりよくするようにしていると言います。http://stackoverflow.com/questions/614600/access-timezoneinfo-from-sql-2005-server/643607#643607 @papillonuk代わりに元の質問を編集することを検討してください。 –

+0

こんにちはマイケル/ケン、はい、古い質問の生意気な復活に申し訳ありません。私の自己回答が私の理由を説明することを願っています。以前の質問をあまり再編集したくなかったので、他のユーザーからのコメントを非シーケンサーにすることになりました。ここに私の最初の質問だったと私は教訓を学んだと思う! – user74207

+0

もう一つの質問はこれについて議論するより良い場所です。 TZIをSQL Serverの内部で使用する必要がある理由を十分に詳しく説明しています。現在のフォームでのこの質問への正しい答えは、「しないでください。あなたが必要とするものを渡してください」です。元の質問への答えは、実際にSQL ServerからTZIを呼び出すことです。 –

答えて

2

はい。別の.NETクラスでカプセル化し、SQL Serverの.NETアセンブリから参照します。次に、SQL Serverデータベースのセキュリティを無効にして、2番目のクラスを実行できるようにします。

これでうまくいかない場合は、COMラッパーを作成してからInteropラッパーを作成し、SQL Serverのセキュリティを破壊して実行することができます。

セキュリティが実際に重要な場合は、必要なビットをラップしてSQLコードのサービスとして使用するWCFサービスを作成できます。それは少しの待ち時間であり、SQL Server自体のオブジェクトに対しては機能しませんが、それはよりクリーンです。

申し訳ありませんがsnarkyの発音の答えが、私は今、不思議な気分になっています。 :-)

0

が安全でないと、あなたのCLRプロシージャを展開します。次に、Visual Studioで

右クリックプロジェクト]> [プロパティ]> [データベース]タブ> [アクセス許可レベルを

、それを展開する、あなたはそれように、データベースを設定する必要があります安全でないアセンブリを受け入れます。二つのオプション:

データベース所有者(DBO)が UNSAFE ASSEMBLY権限を持っていると データベースが上のTRUSTWORTHYデータベース 性質を持っています。

...またはアセンブリは、証明書またはUNSAFE ASSEMBLY 許可を得て、対応するログイン を持っている非対称 キーで を締結しています。

+1

Snarky comment:アセンブリを安全でないものとしてコンパイルしないと、そのチェックボックスはデプロイヤーに安全でないものとしてデプロイするよう指示します。 – erikkallen

+0

清算してくれてありがとう - 私の答えを更新しましたが、コンパイルには影響しません:) – frankadelic

関連する問題