Pregunta

Estoy escribiendo un servicio web muy básico de SharePoint. Probé contra la biblioteca pequeña de 2010 y funciona bien cada vez.

El problema viene con el servidor MOSS 2007 donde una biblioteca es muy grande. Estoy usando .NET 3.5 y con justo debajo de tres líneas de código, recibí un error al azar, el canal de solicitud agotó mientras espera una respuesta después de las 00:00:59. Si aumento el tiempo de espera, entonces todavía recibo un error, La conexión subyacente se cerró: la conexión se cerró inesperadamente.

ListsSoapClient client = new ListsSoapClient();
        client.ClientCredentials.Windows.ClientCredential 
= System.Net.CredentialCache.DefaultNetworkCredentials;
client.ClientCredentials.Windows.AllowedImpersonationLevel 
=   System.Security.Principal.TokenImpersonationLevel.Impersonation;
XmlElement listCollection = client.GetListCollection();

No tengo ni idea de por qué aleatoriamente ocasión y se rompe, el servidor no tiene problemas. Tengo u2u CAML BUILDER Y UTILIZARLO PUEDO NO PODRÍA EJECUTAR CONSEJAR CONTRIBUTAR Y obtener resultados de nuevo instantáneamente.

Creo que hay algo mal en mi aplicación.config o algo que necesito establecer en el lado del cliente.

Mi aplicación.config tiene a continuación la configuración,

        <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">
        <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Ntlm"/>
        <message clientCredentialType="UserName" algorithmSuite="Default"/>
        </security>
        <readerQuotas maxDepth="32" maxStringContentLength="8192" 
        maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />                 
        </binding>

y

  <client>
    <endpoint address="http://ap/AP/_vti_bin/Lists.asmx" binding="basicHttpBinding"
      bindingConfiguration="ListsSoap" contract="SharePointListWebService.ListsSoap"
      name="ListsSoap" />
    <endpoint address="http://ap/AP/_vti_bin/Copy.asmx" binding="basicHttpBinding"
      bindingConfiguration="CopySoap" contract="SharePointCopyWebService.CopySoap"
      name="CopySoap" />
  </client>

Recibo por debajo del error cuando se corjeta todo el tiempo a 10 minutos. Y otra vez, su aleatorio .

   Unhandled Exception: System.ServiceModel.CommunicationException: The underlying
   connection was closed: A connection that was expected to be kept alive was close
   d by the server. ---> System.Net.WebException: The underlying connection was clo
   sed: A connection that was expected to be kept alive was closed by the server.
      at System.Net.HttpWebRequest.GetResponse()
      at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpCha
   nnelRequest.WaitForReply(TimeSpan timeout)
      --- End of inner exception stack trace ---

   Server stack trace:
      at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebExc
   eption(WebException webException, HttpWebRequest request, HttpAbortReason abortR
          eason)
      at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpCha
   nnelRequest.WaitForReply(TimeSpan timeout)
      at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeS
   pan timeout)
      at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message messag
   e, TimeSpan timeout)
      at System.ServiceModel.Channels.ServiceChannel.Call(String action,               Boolean        on       
   eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan tim
   eout)
      at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean on
   eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
      at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCall
   Message methodCall, ProxyOperationRuntime operation)
      at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

   Exception rethrown at [0]:
      at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
   Msg, IMessage retMsg)
      at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
   ta, Int32 type)
      at FetchInvoicesFromSharePointForMaximo.SharePointListWebService.ListsSoap.Ge
   tListCollection(GetListCollectionRequest request)
      at FetchInvoicesFromSharePointForMaximo.SharePointListWebService.ListsSoapCli
   ent.FetchInvoicesFromSharePointForMaximo.SharePointListWebService.ListsSoap.GetL
   istCollection(GetListCollectionRequest request) in C:\FetchInvoicesFromSharePoin
   tForMaximo\FetchInvoicesFromSharePointForMaximo\Service References\SharePointLis
   tWebService\Reference.cs:line 2267
      at FetchInvoicesFromSharePointForMaximo.SharePointListWebService.ListsSoapCli
   ent.GetListCollection() in C:\FetchInvoicesFromSharePointForMaximo\FetchInvoices
   FromSharePointForMaximo\Service References\SharePointListWebService\Reference.cs
   :line 2273
      at FetchInvoicesFromSharePointForMaximo.Program.Main(String[] args) in C:\Fet
   chInvoicesFromSharePointForMaximo\FetchInvoicesFromSharePointForMaximo\Program.c
   s:line 32

¿Fue útil?

Solución 2

Fije el problema, pero no estoy seguro de que esto sucedió, puede ser que algún experto puede comentar.

La solución fue, en lugar de agregar como referencia de servicio, agregué como referencia web y hice truco.

Mis supuestos por razones están abajo,

  1. O ya sea MOSS 2007, no le gusta el cliente proxy creado por la referencia de servicio
  2. En mi red, tenemos dos aplicaciones con el mismo nombre en un dominio diferente, aunque estaba usando un nombre totalmente calificado en la referencia de servicio, por lo que esto no debería ser causa

    gracias

Otros consejos

Cambia lo siguiente:

closeTimeout="00:01:00" openTimeout="00:01:00"
        receiveTimeout="00:10:00" sendTimeout="00:01:00"

a:

closeTimeout="00:10:00" openTimeout="00:10:00"
        receiveTimeout="00:10:00" sendTimeout="00:10:00"

Licenciado bajo: CC-BY-SA con atribución
scroll top