SharePointでWebサービスを開発するためのベストプラクティス?
-
16-10-2019 - |
質問
SharePointでWebサービスを構築するために、次の手順に従いました。
- wspbuilderを使用して新しいプロジェクトを作成しました。
- 「WebService」を追加しました(レイアウトフォルダーに新しいWebサービスを追加)
- wsbbuilder "deploy」を行う
- WebServiceにアクセスできます http://server/_layouts/mywebservice.asmx
これは正しいです ?または、説明した手順に従う必要があります MSDN 私自身を作成する .wsdl / 。ディスコ ファイルとそれらを展開します /_VTI_BIN 私のウェブサービスを介してアクセスできるようにします http://server/_vti_bin/mywebservice.asmx ?
(注:MSDNからのマニュアル手順は、 spdev.
私もこのブログを見つけました:http://jamestsai.net/blog/post/where-do-you-deou-deploy-custom-sharepoint-web-service-files-at-at-at-28asmx-discoaspx-and-wsdlaspx%29.aspx _layoutsと_vti_binの違いを説明しています。
質問
従うための最良の方法は何ですか?
また、VS2008のビルドまたはWSPからの展開中にこれを自動化できますか?
解決 2
質問の最後に参照する記事は本当に答えます。カスタムWebサービスは_VTI_BINに配置する必要があります。
私は通常、それらを_layoutsに追加することから始めますが、それは私のディスカバリーファイルなどを定義できるようにするためだけです(あなたが言及したMSDN仕様で説明されています)。
プロジェクトのWebServiceアセンブリ(DLL)から *wsdl.aspxおよび *disco.aspx SharePoint互換ファイルを生成するシンプルなコマンドラインツールを作成しました。
ツールはで見つけることができます http://wsdlgenerator.codeplex.com .
このようなSharePoint WebSvicesプロジェクトのビルドでこれを使用する場合:
次の行をに追加します 「ポストビルド」 イベント:
"$(ProjectDir)Tools\WSDLGenerator.exe" --input "$(TargetPath)" --outputfolder "$(ProjectDir)12\ISAPI" --spwsdl --spdisco
WSDLおよびディスコファイルは自動的に作成され、ISAPIフォルダーに配置されます。
他のヒント
質問の最後に参照する記事は本当に答えます。カスタムWebサービスは_VTI_BINに配置する必要があります。
私は通常、それらを_layoutsに追加することから始めますが、それは私のディスカバリーファイルなどを定義できるようにするためだけです(あなたが言及したMSDN仕様で説明されています)。
_VTI_BINは、12/ISAPIフォルダーにマッピングされた仮想ディレクトリであるため、ソリューションマニフェストの要素を使用して展開できます。例を参照してください ここ