2010-03-08 4 views
1

Sharepoint est configuré pour utiliser l'authentification NTLM.Pourquoi Sharepoint 2010 Web Reference fonctionne-t-il, mais le service Référence

Lorsque je référence http://myserver/Sites/Ops/_vti_bin/Lists.asmx?WSDL en tant que référence Web, je peux appeler les méthodes et obtenir des réponses valides.

Lorsque je référence la même URL en tant que référence de service, le serveur lève une exception lors de l'appel des méthodes.

Mon compte est administrateur sur la Sharepoint Farm.

C'est le app.config pour la référence de service (la plupart du temps généré automatiquement):

<?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> 

Saddly, la seule information fournit l'exception est la suivante:

« Exception de type « Microsoft.SharePoint .SoapServer.SoapServerException 'a été lancé. "

Aucun autre détail.

Le code que j'utilise est:

public ListClass() 
    { 

     _Client = new SharepointLists.ListsSoapClient(); 

    } 

    public System.Xml.Linq.XElement GetTaskList() 
    { 
     return _Client.GetList("Tasks"); 

    } 

Toute pensée? Je voudrais utiliser la référence de service plutôt que la référence Web.

MISE À JOUR:

J'ai essayé la suggestion de Rob et a obtenu cette erreur:

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 

was not recognized as a known document type. The error message from each known type may help you fix the problem: - Report from ' http://myserver/Sites/Ops/_vti_bin/Lists.asmx ' is 'The document format is not recognized (the content type is 'text/html; charset=utf-8').'. - Report from 'DISCO Document' is 'There was an error downloading ' http://myserver/_vti_bin/Lists.asmx?disco '.'. - The request failed with HTTP status 404: Not Found. - Report from 'WSDL Document' is 'The document format is not recognized (the con tent type is 'text/html; charset=utf-8').'. - Report from 'XML Schema' is 'The document format is not recognized (the conten t type is 'text/html; charset=utf-8').'.

Répondre

1

Le service Ajouter boîte de dialogue de référence ne génère pas la bonne configuration pour un service ASMX. Vous devez utiliser svcutil à la place.

Ce blog devrait vous aider http://nayyeri.net/integrating-wcf-clients-with-asmx-services

+0

@Rob J'apprécie la suggestion Rob, mais malheureusement cela ne fonctionne pas. J'ai mis à jour mon message avec l'erreur. –

+0

(correctif tardif de typo et downvote) @Rob: -1: ce blog date de 2007. "Ajouter une référence de service" fonctionne très bien avec les services Web ASMX ou tout autre service Web SOAP de base. Il utilise simplement basicHttpBinding. –

Questions connexes