2011-03-03 210 views
7

我有一個Silverlight應用程序,它在我的asp.net應用程序中使用WCF服務。Silverlight應用程序以墨跡筆畫的形式保存「繪畫」。這些筆畫的形式是xaml(可能很大),我將其轉換爲字符串併發送到服務以將字符串保存到sql server。 (基本上做這個應用程序相同的類型http://msdn.microsoft.com/en-us/magazine/cc721604.aspx)。遠程服務器返回錯誤:NotFound

這個工作,我可以看到我的服務方法正在打的時候,繪圖是相對較小,但如果繪圖變得很大,我得到這個偉大的錯誤和服務方法斷點永遠不會被擊中。看起來我已經通過了一個規模門檻,但我無法弄清楚我是對的還是要改變什麼才能解決問題。

我已經谷歌和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> 

當VS顯示錯誤

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_錯誤的內容,其所有的宏偉? – 2011-03-03 19:43:01

+0

@Mr。失望 - 對不起,沒有發佈,因爲我讀過它的一個非常普遍和無益的錯誤,但我會編輯我的文章。 – AGoodDisplayName 2011-03-03 19:56:24

回答

0

你嘗試過打開WCF Tracing?我不確定這是否適用於Silverlight(鑑於Silverlight在本地硬盤方面存在很多安全限制),因此您可能需要設置一個簡單的no silverlight客戶端,並在打開診斷程序的情況下重新創建呼叫。

編輯:或者,可能是readerQuotas的的MaxArrayLength成員...

相關問題