silverlight – 远程服务器返回错误:NotFound

前端之家收集整理的这篇文章主要介绍了silverlight – 远程服务器返回错误:NotFound前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Silverlight应用程序,它在我的asp.net应用程序中使用WCF服务.silverlight应用程序以墨水笔划的形式保存“图纸”.这些笔划是xaml(可能有点大)的形式,我将其转换为字符串并发送到服务以将字符串保存到sql server. (基本上与此应用程序 http://msdn.microsoft.com/en-us/magazine/cc721604.aspx相同类型的东西).

这有效,我可以看到我的服务方法在绘图相对较小时被击中,但如果绘图变大,我会得到这个很大的错误,并且服务方法断点永远不会被击中.似乎我正在通过一个大小阈值,但我无法弄清楚我是对的还是要改变什么来解决问题.

我已经搜索谷歌和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
}

我的asp.net应用程序与服务web.config

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

解决方法

尝试增加readerQuotas – 在绑定元素中添加此元素

<readerQuotas maxStringContentLength="2147483647" />

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

猜你在找的Silverlight相关文章