1

SharePointがインストールされているのと同じマシンで実行されるコンソールアプリケーションで、Sharepointのすべてのサイト/サブサイトから共有ドキュメントを読み取る必要がありますが、.NetFramework4.0に基づいています。Sharepoint ServerObjectsはFramework3.5に基づいていると思うので、ドキュメントのリストを読み取って返すカスタムWebサービスを作成するというアイデアを思いつきました。このブログに記載されているようにカスタムサービスを作成しましたが、正常に機能しています。これが私のWebサービスメソッドの1つでドキュメントを読み取るための私のコードです。

SPWebApplication webApp = SPContext.Current.Site.WebApplication;
            #region Traverse all sub sites
            foreach (SPSite subSite in webApp.Sites)
            {
                using (SPWeb sWeb = subSite.OpenWeb())
                {
            foreach (SPList list in sWeb.Lists)
            {
                if (list.BaseType == SPBaseType.DocumentLibrary &&
                                    list.Hidden == false && list.BaseTemplate == SPListTemplateType.DocumentLibrary &&
                                    list.Title.Equals("Style Library", StringComparison.InvariantCultureIgnoreCase) == false &&
                                    list.Title.Equals("Site Assets", StringComparison.InvariantCultureIgnoreCase) == false)

しかし、次の行「foreach(sWeb.ListsのSPListリスト) 」に到達するとすぐに、タイプ「 'System.Threading.ThreadAbortException'」の例外がスローされます。

このforeachループsWeb.Lists.countを超えるリスト数を取得しようとしても、同じ例外がスローされます。私がここで間違っていることを助けてください。

4

1 に答える 1

0

SharePointクライアントオブジェクトモデルを確認してください。これは、SharePointWebサービスを呼び出す簡単な方法を提供します。クライアントアプリケーションでサーバーオブジェクトモデルを使用することは注意が必要であり、優れた認証技術を提供しません。サーバーオブジェクトモデルのクレデンシャルを設定できないため、認証に問題があると思います。

于 2012-06-14T13:28:40.420 に答える