Sharepoint は、NTLM 認証を使用するようにセットアップされています。
http://myserver/Sites/Ops/_vti_bin/Lists.asmx?WSDLを Web 参照として参照すると、メソッドを呼び出して有効な応答を取得できます。
サービス参照と同じ URL を参照すると、サーバーはメソッドを呼び出すときに例外をスローします。
私のアカウントは、Sharepoint ファームの管理者です。
これは、サービス リファレンスの app.config です (ほとんどが自動生成されます)。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ListsSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myserver/Sites/Ops/_vti_bin/Lists.asmx"
binding="basicHttpBinding" bindingConfiguration="ListsSoap"
contract="SharepointLists.ListsSoap" name="ListsSoap" />
</client>
</system.serviceModel>
</configuration>
悲しいことに、例外が提供する唯一の情報は次のとおりです。
「タイプ 'Microsoft.SharePoint.SoapServer.SoapServerException' の例外がスローされました。」
他の詳細はありません。
私が使用しているコードは次のとおりです。
public ListClass()
{
_Client = new SharepointLists.ListsSoapClient();
}
public System.Xml.Linq.XElement GetTaskList()
{
return _Client.GetList("Tasks");
}
何かご意見は?Web リファレンスではなく、サービス リファレンスを使用したいと考えています。
アップデート:
ロブの提案を試してみたところ、次のエラーが発生しました。
HTTP GET Error URI: http://myserver/Sites/Ops/_vti_bin/Lists.asmx The document at the url http://myserver/Sites/Ops/_vti_bin/Lists.asmx
は既知のドキュメント タイプとして認識されませんでした。既知の各タイプからのエラー メッセージは、問題の解決に役立つ場合があります。 html; charset=utf-8').'. - 「DISCO ドキュメント」からのレポートは、「「http://myserver/_vti_bin/Lists.asmx?disco」のダウンロード中にエラーが発生しました」です。- HTTP ステータス 404: Not Found でリクエストが失敗しました。- 「WSDL ドキュメント」からのレポートは、「ドキュメント形式が認識されません (コンテンツ タイプは「text/html; charset=utf-8」です)」です。- 「XML スキーマ」からのレポートは「ドキュメント形式が認識されません (コンテンツ タイプは「テキスト/html; charset=utf-8').'.