SharePoint 2010 で利用できるようになった「サンドボックス ソリューションとして展開できるWebパーツ」ですが、開発中に色々と注意しないといけないことがあります。
ソリューション開発時のチェックリスト
ソリューションを展開する前に確認しておきたい項目は次のとおりです。
*.cs ファイル
名前空間と型名(クラス名)が正しいかを確認する
*.webpart ファイル
metadataq セクションで指定する type 要素には、正しい方が指定されていること。これが間違っていると、Webパーツを配置しようとしても、エラーが表示され追加できない。
*.spdata ファイル
ファーム ソリューションの場合にはIIS側の SharePoint ルート仮想ディレクトリ内のWeb.configに SafeControl エントリーを追加されますが、サンドボックス ソリューションではWeb.config には直接追加されません。しかし、開発時には隠しファイル内にSafeContolエントリーを記述するようになっています。
Visual Studio 2010 のソリューション エクスプローラーで[すべてのファイルを表示]をクリックすると、Webパーツのフォルダー内には隠しファイルとして *.spdata が生成されており (これは分かりにくい!!) 、この中に SafeControl エントリーが記載されています。*.cs 内の名前空間変更時には併せてこちらも確認しておきましょう (特に Namespace) 。
たとえば *.spdata ファイル内の記述が正しくないと次のようにWebパーツに表示されてしまいます。
「Web パーツ エラー: 部分的に信頼されているアプリケーション ドメインで、セキュリティで保護されたコード ラッパーの実行メソッドから未処理の例外がスローされました: この種類は安全なコントロールとして登録されていません。
[参考] http://www.alexbruett.net/?p=261
コメント