2009-07-03 4 views
4

を呼び出す:SharePointのSoapServerExceptionが、私は私のコードで次のステートメントを持つGetListItems Webサービス

System.Xml.XmlNode items = lstWebs.GetListItems(
    "Tasks", string.Empty, listQuery, listViewFields, 
    string.Empty, listQueryOptions, WorkspaceId); 

これを実行すると、次の例外が発生します。

 
Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown. 

Exception Source is: 
System.Web.Services 

Stack Trace: 
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
    at ImpersonationConsoleApp.MossLists.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID) in C:\Documents and Settings\david\My Documents\_Dew02SiteCreator\DeWProjectStarter\ImpersonationConsoleApp\Web References\MossLists\Reference.cs:line 435 
    at ImpersonationConsoleApp.Program.DeleteTasksIfNotExist(DataRow[] drTasksdel, String siteURL) in C:\Documents and Settings\david\My Documents\_Dew02SiteCreator\DeWProjectStarter\ImpersonationConsoleApp\Program.cs:line 1384 

私はサイトのURLを確認しているし、それがあります良い。

例外が発生している理由を教えてください。 IISをリセットする必要はありますか?

詳細をご覧ください。

SoapException.InnerException is Null. 
However the soapExcetion.Detail.InnerText is showing: The system cannot find the file specified. (Exception from HRESULT: 0x80070002) 
+0

SoapExceptionのInnerExceptionとSoapException.Detailプロパティをチェックアウトして、ここに投稿できますか? – Colin

+0

"listQuery"の値として、パラメータに関する情報を追加できますか?どのようなタイプのアプリケーションを実装していますか? – jaloplo

答えて

3

URLの実際のリスト名もタスク名ですか?すなわちhttp://siteurl/lists/tasks?サブサイトのリストで、サイトコレクションの下でサービスを使用していますか?

リストがサブサイトにある場合は、サービスURLとしてhttp://sitecollectionurl/subsite/_vti_bin/lists.asmxを使用します。そうでない場合、lists.asmxはサブサイトの代わりにrootwebでタスクリストを検索しようとします。

+0

リストのURLが間違っていると、上記の問題が発生しました。 – Mark

-1

はあなたが昇格権限で実行したことがあります実行しているユーザーがデータを照会する十分な権限が肝炎しないように、それが見えます... GetListItemsため

SPSecurity.RunWithElevatedPrivileges

+2

Webサービスで同じものを使用する方法??? –

+0

@ AshutoshSingh-MVPSharePoint Webサービスのユーザーは特権を必要とします。 Webサービスクライアントとしてそれらを昇格することはできません。 – xr280xr

3

署名が

です(リストID、 ""、queryNode、viewFieldsNode、Nothing、queryOptionsNode、Nothing)

queryNode、viewFieldsNodeおよびqueryOptionsNodeを最小限に単純化してみてください。 C#の

var caml = new XmlDocument(); 
var queryNode = caml.CreateElement("Query"); 
var viewFieldsNode = caml.CreateElement("ViewFields"); 
var queryOptionsNode = caml.CreateElement("QueryOptions"); 
queryOptionsNode.InnerXml = "<ViewAttributes Scope=\"Recursive\" /><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>"; 

VB.NET

Dim caml = New XmlDocument 
Dim queryNode = caml.CreateElement("Query") 
Dim viewFieldsNode = caml.CreateElement("ViewFields") 
Dim queryOptionsNode = caml.CreateElement("QueryOptions") 
queryOptionsNode.InnerXml = "<ViewAttributes Scope=""Recursive"" /><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" 

それが動作する場合は、Webサービスの設定は正しいです。

上記の問題が発生したとき、原因となったのは無効なXMLでした。 queryNodeの 'Where'要素の 'Value'要素に 'type'属性がありません。私はMicrosoftからそれを見つけました。

タイプ|必要なテキスト。この要素に含まれる値のデータ型を指定します。

Type属性を追加した後で機能します。上記のいずれかのノードでxmlの要件が欠落していないかどうかを確認します。

+0

私にとって、 'GetListItems'は' XmlElement'ではなく 'XElement'パラメータを使います。 *** XElement ***を使用するすべてのソリューション? – Kiquenet

関連する問題