2008年3月19日 (水)

SharePoint の Web サービス と利用時の注意事項

SharePoint の Web サービスについて

Windows SharePoint Services にはビルトインのWebサービスが各種用意されており、カスタム アプリケーションから SharePoint を操作する際には便利です。無論 SharePoint Server 2007 でも利用できます。

Web サービスはどこのサイトからでも利用できるように共有されており、主な Web サービスは「http://サイトのURL + /_vti_bin/各種Webサービス(*.asmx)」という形式でアクセスできるようになっています。

たとえば次のような Web サービスが提供されています。

  • UserGroup.asmx … ユーザー、ロール定義、およびグループを操作するためのメソッドを提供する。具体的にはユーザーやグループの追加や権限設定などが行える。
  • Lists.asmx … リストまたはリストデータを操作するためのメソッドを提供する。 具体的にはリストの取得、リスト アイテムの取得、リストアイテムの更新などが行える

その他にも、多くの Web サービスが提供されていますので詳細は以下の URL をご覧ください。

この 「_vti_bin」フォルダは実際には、SharePoint Server 2007 のインストールされているフロントエンドWebサーバーの「%ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\12\isapi」です。isapi フォルダのプロパティを開くと、以下の図のようにエイリアスが設定されていることがわかります。

[図._vti_bin]
_vti_bin

利用する際の注意事項

注意このような Web サービスを利用してカスタム アプリケーションを開発できるのですが、Visual Studio 2005 を使用していた際に以前トラブルに遭遇したことがありますので、備忘録として記載しておきます。

<問題の再現>

SharePoint サイトにルートのサイトコレクションを作成していないと、Web 参照追加時に次のようなエラーが表示され[Web 参照の追加]ボタンがアクティブになってくれないようです。

「URL "<http://WebサービスのURL>" のドキュメントは既知のドキュメントの種類として認識されませんでした。それぞれの既知の種類に関するエラーメッセージを参照して問題を解決してください。
- '<
http://WebサービスのURL>' からのレポート: 'このドキュメントの形式は認識されません。コンテンツ タイプは 'text/html; charset=utf-8' です。'
- 'DISCO ドキュメント' からのレポート: 'ルート要素が見つかりません。'
- 'WSDL ドキュメント' からのレポート: 'このドキュメントの形式は認識されません。コンテンツ タイプは 'text/html; charset=utf-8' です。'
- 'XML スキーマ' からのレポート: 'このドキュメントの形式は認識されません。コンテンツ タイプは 'text/html; charset=utf-8' です。'」

[図.Web参照の追加:エラー]

Addwebserviceerror

<問題の解決策>

解決方法は次のいずれかです。

  • ルートのサイトコレクションを作成する
  • Webサービスを指定する際に "?WSDL" まで指定する

次の図は "?WSDL" までの URL を指定してみたものですが、無事に "参照の追加" ボタンが利用できるようになります。

[図."?WSDL" まで指定したところ]
Addwebserviceerror_fixed

以上、ご参考まで。

トラックバック

このページのトラックバックURL: http://bb.lekumo.jp/t/trackback/718613/34255748

SharePoint の Web サービス と利用時の注意事項を参照しているブログ:

コメント

こんにちは、ぽてとです。
MSDNフォーラムではお世話になりました。
MS中川さまより、この記事の内容が有用な情報であるとコメントありました。

その後、ツール開発は順調にすすみ、間もなく実装予定です。ちなみに、ツールは、Sharepointリストと共有フォルダを繋ぐミドルウェア的なもので、ホットフォルダに投げ込まれたファイル(数百MB)を既定の共有フォルダにコピーし、その場所をリストの該当アイテムに登録する といったものです。

当社では、WSS + Groupboard が去年の5月より稼働し、それまではグループウェア的なものはありませんでした。最初は小規模であり、しかも私含む2名しか推進していませんでしたが、最近では、Sharepoint の魅力に取りつかれ始めた社員が増えてきました。

今年の5月には、MOSSの導入も予定しており、更なる発展を見込んでいます。
また、クリエ様のトレーニングも検討していますので、受講の際はお願いします。

ぽてとさん

いえいえ、こちらこそあまりお役に立てず申し訳ありませんでした。

さて、大変素敵なツールを作成されているのですね。利便性を考えると既存環境であるファイルサーバーとの連携は非常に重要な機能だと思います。

SharePoint ファンが増えてきているようですね(笑) もともと仕事上ある意味やむをえず足を踏み入れてきた製品ですが、ことMOSS2007に関しては、ながいこと一緒にいすぎて、ブログまで書くほど愛着心が芽生えてしまっているようですconfident

トレーニングの方も機会がありましたら、ぜひご参加くださいませ。またこちらのブログで定期開催で担当する分に関しては告知もしようと思いますので、登壇コースにご参加いただけるとまたいろいろとお話もさせていただけるかと思います。

ご丁寧にコメントをいただきありがとうございました。引き続きどうぞよろしくお願いいたします。

こんにちは。いつもお世話になっております。
非常に有用なエントリでした。各ウェブサービスの詳細というMSのページがあったんですね。。。知りませんでした。これで手探りで開発しなくてすむようになりました!
SharePointにはどんな組込みのウェブサービスがあるのかなー♪なんてasmxファイルを検索したりと、仕事でやってましたが、恥ずかしい限りでございます。ありがとうございます。

ひげもじゃさん
コメントをありがとうございます! 参考になってよかったです。また素敵な Web サービス連携の記事の投稿を期待しております!