2011-03-03 15 views
7

मेरे पास एक सिल्वरलाइट ऐप है जो मेरे एएसपीनेट एप्लिकेशन में डब्ल्यूसीएफ सेवा का उपभोग करता है। चांदी की रोशनी ऐप स्याही स्ट्रोक के रूप में "चित्र" सहेजती है। ये स्ट्रोक xaml (जो कि बड़े प्रकार का हो सकता है) के रूप में हैं, जिनमें से मैं एक स्ट्रिंग में परिवर्तित हो रहा हूं और स्ट्रिंग को SQL सर्वर में सहेजने के लिए सेवा में भेज रहा हूं। (मूल रूप से इस ऐप http://msdn.microsoft.com/en-us/magazine/cc721604.aspx) के समान प्रकार की चीज करता है।रिमोट सर्वर ने एक त्रुटि लौटा दी: NotFound

यह काम करता है और मैं देख सकता हूं कि ड्राइंग अपेक्षाकृत छोटा होने पर मेरी सेवा विधि को मारा जा रहा है, लेकिन यदि चित्र बड़ा हो जाता है तो मुझे यह बड़ी त्रुटि मिलती है और सेवा विधि ब्रेक पॉइंट कभी हिट नहीं होता है। ऐसा लगता है कि मैं एक आकार सीमा पारित कर रहा हूं, लेकिन अगर मैं सही हूं या इस मुद्दे को हल करने के लिए क्या बदलना है, तो मुझे पता नहीं लगाया जा सकता है।

मैंने बिना किसी सफलता के Google और SO को सीखा है, इसलिए किसी भी मदद की सराहना की जाएगी। अग्रिम में धन्यवाद।

मेरी सेवा:

[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 
} 

सेवा web.config साथ मेरे asp.net अनुप्रयोग

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

कहाँ वी.एस. त्रुटि

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; 
     } 

अपवाद दिखा रहा है

{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

कहाँ है है _actual_ त्रुटि सामग्री, इसकी सभी भव्यता में? –

+0

@ एमआर। निराशा - खेद है कि मैंने इसे सबकुछ से सामान्य रूप से सामान्य और अनुपयोगी त्रुटि से पढ़ा है, लेकिन मैं अपनी पोस्ट संपादित करूंगा। – AGoodDisplayName

उत्तर

7

readerQuotas बढ़ा कर देखें - binding तत्व के अंदर इस तत्व जोड़

<readerQuotas maxStringContentLength="2147483647" /> 

http://msdn.microsoft.com/en-us/library/ms731325.aspx

+0

या, यह maxArrayLength हो सकता है। छवियों को शायद सरणी के रूप में क्रमबद्ध किया जा रहा है। – RQDQ

+1

हमारे पास विजेता है! बहुत बहुत धन्यवाद। – AGoodDisplayName

0

आप WCF Tracing को चालू करने की कोशिश की है? मुझे यकीन नहीं है कि क्या यह सिल्वरलाइट के साथ काम करता है (यह देखते हुए कि सिल्वरलाइट में स्थानीय हार्डड्राइव के मामले में बहुत सी सुरक्षा सीमाएं हैं), इसलिए आपको एक साधारण चांदी के क्लाइंट क्लाइंट को स्थापित करने और डायग्नोस्टिक्स के साथ कॉल को पुन: पेश करने की आवश्यकता हो सकती है।

संपादित करें: या, readerQuotas की maxArrayLength सदस्य हो सकता है ...

संबंधित मुद्दे

 संबंधित मुद्दे