2011-03-03 25 views
7

Tengo una aplicación Silverlight que consume un servicio WCF en mi aplicación asp.net. La aplicación Silverlight guarda "dibujos" en forma de trazos de tinta. Estos trazos tienen la forma de xaml (que puede ser algo grande) de los cuales estoy convirtiendo a una cadena y los envío al servicio para guardar la cadena en el servidor sql. (Básicamente hace el mismo tipo de cosas que esta aplicación http://msdn.microsoft.com/en-us/magazine/cc721604.aspx).El servidor remoto devolvió un error: NotFound

Esto funciona y puedo ver que mi método de servicio se ve afectado cuando el dibujo es relativamente pequeño, pero si el dibujo llega a ser grande obtengo este gran error y el punto de interrupción del método de servicios nunca se golpea. Parece que estoy superando un límite de tamaño, pero no puedo determinar si estoy en lo cierto o qué cambiar para resolver el problema.

He buscado google y SO sin éxito, por lo que cualquier ayuda sería apreciada. Gracias por adelantado.

Mi Servicio:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class DrawingService: IDrawingService 
{ 
    #region IDrawingService Members 
    public bool SaveEvalAreaDrawing(int EvalAreaId, string xmlToSave) 
    { 
     return true; 
    } 

    public bool SaveEvalItemDrawing(int EvalItemId, string xmlToSave) 
    { 
     return true; 
    } 

    public string GetEvalAreaDrawing(int EvalAreaId, string xmlToSave) 
    { 

     return "you got the eval drawing!"; 
    } 

    public string GetEvalItemDrawing(int EvalItemId, string xmlToSave) 
    { 

     return "you got the eval item drawing!"; 
    } 

    #endregion 
} 

Mi aplicación asp.net web.config con el servicio

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="MyNameSpace.Services.DrawingServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <customBinding> 
    <binding name="customBinding0"> 
     <binaryMessageEncoding /> 
     <httpTransport> 
     <extendedProtectionPolicy policyEnforcement="Never" /> 
     </httpTransport> 
    </binding> 
    </customBinding> 
    <wsHttpBinding> 
    <binding name="wsPlainBinding" maxBufferPoolSize="2147483647" 
     maxReceivedMessageSize="2147483647"> 
     <security mode="None"> 
     <transport clientCredentialType="None"> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     <message clientCredentialType="None" negotiateServiceCredential="false" 
      establishSecurityContext="false" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
<services> 
    <service behaviorConfiguration="HSD.ECERS.Services.DrawingServiceBehavior" 
    name="HSD.ECERS.Services.DrawingService"> 
    <endpoint address="Services" binding="wsHttpBinding" bindingConfiguration="wsPlainBinding" 
     name="wsPlainHttp" contract="HSD.ECERS.Services.IDrawingService" /> 
    <endpoint address="mex" binding="mexHttpBinding" name="wsdl" 
     contract="IMetadataExchange" /> 
    </service> 
</services> 

ServiceReferences.ClientConfig

<configuration> 
<system.serviceModel> 
    <bindings> 
     <customBinding> 
      <binding name="wsPlainHttp"> 
       <textMessageEncoding messageVersion="Default" writeEncoding="utf-8" /> 
       <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"> 
        <extendedProtectionPolicy policyEnforcement="Never" /> 
       </httpTransport> 
      </binding> 
     </customBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://localhost:41594/Services/DrawingService.svc/Services" 
      binding="customBinding" bindingConfiguration="wsPlainHttp" 
      contract="EvalDrawingService.IDrawingService" name="wsPlainHttp" /> 
    </client> 
</system.serviceModel> 
</configuration> 

Dónde VS está mostrando el error

public bool EndSaveEvalAreaDrawing(System.IAsyncResult result) { 
      object[] _args = new object[0]; 
      bool _result = ((bool)(base.EndInvoke("SaveEvalAreaDrawing", _args, result))); // Here is where is popping up 
      return _result; 
     } 

Excepción

{System.ServiceModel.CommunicationException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. 
    at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 
    at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState) 
    at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState) 
    --- End of inner exception stack trace --- 
    at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) 
    at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 
    at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result) 
    --- End of inner exception stack trace --- 
    at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result) 
    at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result) 
    at EvaluaionAncillaryControl.EvalDrawingService.DrawingServiceClient.DrawingServiceClientChannel.EndSaveEvalAreaDrawing(IAsyncResult result) 
    at EvaluaionAncillaryControl.EvalDrawingService.DrawingServiceClient.EvaluaionAncillaryControl.EvalDrawingService.IDrawingService.EndSaveEvalAreaDrawing(IAsyncResult result) 
    at EvaluaionAncillaryControl.EvalDrawingService.DrawingServiceClient.OnEndSaveEvalAreaDrawing(IAsyncResult result) 
    at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)} 
+1

Dónde está es el _actual_ error contenido, en toda su grandeza? –

+0

@Mr. Decepción: lo siento, pero no lo publiqué originalmente porque todo lo que he leído es un error realmente general e inútil, pero voy a editar mi publicación. – AGoodDisplayName

Respuesta

0

Ha intentado encender WCF Tracing? No estoy seguro de si eso funciona con Silverlight (dado que Silverlight tiene muchas limitaciones de seguridad en términos del disco duro local), por lo que es posible que necesite configurar un cliente simple sin Silverlight y reproducir la llamada con los diagnósticos activados.

EDIT: O bien, podría ser el miembro de maxArrayLength readerQuotas ...

Cuestiones relacionadas