1

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').'.

4

1 に答える 1

1

[サービス参照の追加] ダイアログで、ASMX サービスの適切な構成が生成されません。代わりに svcutil を使用する必要があります。

このブログ投稿は、 http://nayyeri.net/integrating-wcf-clients-with-asmx-servicesに役立ちます。

于 2010-03-15T13:34:25.740 に答える