トップ回答者
公開WebサービスをWindowsアプリで使用する方法

質問
-
いつもお世話になっております。
公開WebサービスをWindowsアプリで使用する方法に関しましてご教授いただきたくお願いいたします。
現在、Windowsアプリで公開Webサービス(Lists)を使用しリスト中のアイテム情報を取得するプログラムを作成しています。
APサーバ上では問題なく動作するのですが、
SQLサーバ(moss.dllがありません)上では「オブジェクト参照がオブジェクトインスタンスに設定されていません」とのエラーで
Webサービスを参照できていないようです。
app.config などの設定に不足があるのでしょうか。
ご教授いただけると助かります。
どうぞよろしくお願いいたします。
回答
-
んそるさん
いただいている情報からだけだと、なかなか厳しいですが、いくつか気になるところを書きます。
SQL Server上でWebサービスを呼び出すと「オブジェクト参照がオブジェクトインスタンスに設定されていません」とエラーが出るとのことですが、このエラーはWebサービス呼び出しを行っている行で発生しているエラーですか?
それともその前後で出ているエラーでしょうか?
それから、SQL Server上でブラウザを開いて、WebサービスのURLにアクセスしたらどうなりますか?
Webサービスのページは開けますか?
Webサービスを参照できていないとしたら、これを試すとページが開けない、あるいは見つけられないはずです。
開けたとしたら、Webサービス呼び出しはおそらくうまくいっていて、その前後のコードに問題があるのではないかと思います。SharePoint Developer http://sharepoint.orivers.jp
- 回答としてマーク 山本春海 2012年7月31日 9:02
すべての返信
-
んそるさん
いただいている情報からだけだと、なかなか厳しいですが、いくつか気になるところを書きます。
SQL Server上でWebサービスを呼び出すと「オブジェクト参照がオブジェクトインスタンスに設定されていません」とエラーが出るとのことですが、このエラーはWebサービス呼び出しを行っている行で発生しているエラーですか?
それともその前後で出ているエラーでしょうか?
それから、SQL Server上でブラウザを開いて、WebサービスのURLにアクセスしたらどうなりますか?
Webサービスのページは開けますか?
Webサービスを参照できていないとしたら、これを試すとページが開けない、あるいは見つけられないはずです。
開けたとしたら、Webサービス呼び出しはおそらくうまくいっていて、その前後のコードに問題があるのではないかと思います。SharePoint Developer http://sharepoint.orivers.jp
- 回答としてマーク 山本春海 2012年7月31日 9:02
-
お世話になっております。
少し状況を確認できましたので、お知らせさせていただきます。
以下の情報で問題箇所が特定できるでしょうか。調査の途中ですが、情報をUpさせていただきました。
どうぞよろしくお願いいたします。
【ソース】
// 参照オブジェクトのインスタンス
NoticeMail_koukan.ListsWS.Lists _lists = new NoticeMail_koukan.ListsWS.Lists();
_lists.Url = wsUrl;
_lists.Credentials = System.Net.CredentialCache.DefaultCredentials;// 検索に必要なXmlNodeオブジェクト生成
XmlDocument xmlDoc = new XmlDocument();
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");// 検索オプション
ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + "<DateInUtc>TRUE</DateInUtc>";// 検索条件
ndQuery.InnerXml = strQuery;// アイテムの取得
XmlNode ndListItems = _lists.GetListItems(strListName, null, ndQuery, ndViewFields, null, ndQueryOptions, null);【エラーログ】
リストの情報取得処理でエラーが発生しました。アイテムの情報取得処理でエラーが発生しました。
種類 'Microsoft.SharePoint.SoapServer.SoapServerException' の例外がスローされました。
sourceオブジェクト名:System.Web.Services
Detail:System.Xml.XmlElement
code違反コードの種類:http://schemas.xmlsoap.org/soap/envelope/:Server
ToString文字列形式:System.Web.Services.Protocols.SoapException:
種類 'Microsoft.SharePoint.SoapServer.SoapServerException' の例外がスローされました。
場所 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
場所 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
場所 XYB_Batch.NoticeMail_koukan.ListsWS.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID)
場所 XYB_Batch.NoticeMail_koukan.MailSender.getListItemRows(String strListName, String strQuery)