none
silverlight调用wcf的问题 RRS feed

  • 问题

  • 执行到wcf的客户端代理的这块出现  The remote server returned an error: NotFound错误,红字那行:

     

    public System.Collections.ObjectModel.ObservableCollection<eNego.CVS.DepotInfoProxy.Supplier> EndGetAllBrandInfos(System.IAsyncResult result)

    {
                    object[] _args = new object[0];
                    System.Collections.ObjectModel.ObservableCollection<eNego.CVS.DepotInfoProxy.Supplier> _result = ((System.Collections.ObjectModel.ObservableCollection<eNego.CVS.DepotInfoProxy.Supplier>)(base.EndInvoke("GetAllBrandInfos", _args, result)));
                    return _result;
    }

     

    在silverlight客户端的page.xaml.cs里:

    public partial class Page : UserControl
        {
            public Page()
            {
                InitializeComponent();
                this.Loaded += new RoutedEventHandler(Page_Loaded);
            }
            private void Page_Loaded(object sender, RoutedEventArgs e)
            {
                BrandInfoServiceClient brandProxy = new BrandInfoServiceClient();
                brandProxy.GetAllBrandInfosCompleted += 

                                                             new EventHandler<GetAllBrandInfosCompletedEventArgs> (GetAllBrand);
                brandProxy.GetAllBrandInfosAsync();
            }
            private void GetAllBrand(Object sender,GetAllBrandInfosCompletedEventArgs e)
            {
                ObservableCollection<Supplier> brandList = e.Result;
                lbBrand.DataContext = brandList;
            }
        }

    我设断点看了一下,当执行到绿色那段时就出现上面红色那段代码的错误

    怎么解决?

     

    2009年1月8日 13:36

答案

  • 终于弄出来了,是wcf调用我的dal里的data dataservic时uri格式写错了

     

    说到这里有点郁闷,为什么wcf运行时错误不管什么都返回not found呀,太笼统!!!!

     

    2009年1月10日 7:08

全部回复

  • 错误信息里面的The remote server returned an error,说明是WCF那一端发生了异常,你应该去WCF那一端调试一下。

    2009年1月8日 14:24
  • wcf服务端怎么调试,能说得具体点吗,浏览器里调用服务正常,为了简化问题我做了一个简单的服务函数:

     

    DepotInfoService.svc.cs:

     public class DepotInfoService : IDepotInfoService
     {

            public string Gethello()
            {
                string a = "Hello!!!";
                return a;
            }

    }

     

    Page.Xaml.cs:

    public partial class Page : UserControl
        {
            public Page()
            {
                InitializeComponent();
                this.Loaded += new RoutedEventHandler(Page_Load);
            }
            private void Page_Load(object sender, RoutedEventArgs e)
            {
                DepotInfoServiceClient brandProxy = new DepotInfoServiceClient();
                brandProxy.GethelloCompleted += new EventHandler<GethelloCompletedEventArgs>(Gethello);
                brandProxy.GethelloAsync();
            }
            private void Gethello(Object sender, GethelloCompletedEventArgs e)
            {
                string brandList = e.Result;
                lbhello.DataContext = brandList;
            }
        }

     

    一执行到绿色那行就开始执行客户端代理类的红色那行报“The remote server returned an error: NotFound”错误

     

    public string EndGethello(System.IAsyncResult result) {
                    object[] _args = new object[0];
                    string _result = ((string)(base.EndInvoke("Gethello", _args, result)));
                    return _result;

    }

     

    2009年1月9日 8:52
  • 我用工具跟踪了一下,发现一个错误:橘黄色那行, 可我不知道怎么改...................

     

    <s:Envelope xmlnsTongue Tied="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
    <s:Fault>
    <faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">
    a:InternalServiceFault
    </faultcode>
    <faultstring xml:lang="zh-CN">无效的 URI: 无法确定 URI 的格式。</faultstring>
    <detail>
    <ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <HelpLink i:nil="true"/>
    <InnerException i:nil="true"/>
    <Message>无效的 URI: 无法确定 URI 的格式。</Message>
    <StackTrace>
       在 System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)&#xD;

       在 System.Uri..ctor(String uriString)&#xD;

       在 ENego.BPS.DepotInfoService..ctor() 位置 F:\My Documents\ENego\BusinessServices\DepotInfoService.svc.cs:行号 16&#xD;

       在 CreateENego.BPS.DepotInfoService()&#xD;

       在 System.ServiceModel.Dispatcher.InstanceBehavior.InstanceProvider.GetInstance(InstanceContext instanceContext, Message message)&#xD;

       在 System.ServiceModel.Dispatcher.InstanceBehavior.GetInstance(InstanceContext instanceContext, Message request)&#xD;

       在 System.ServiceModel.InstanceContext.GetServiceInstance(Message message)&#xD;

       在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)&#xD;

       在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&amp; rpc)&#xD;

       在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&amp; rpc)&#xD;

       在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&amp; rpc)&#xD;

       在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&amp; rpc)&#xD;

       在 System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
    </StackTrace>
    <Type>System.UriFormatException</Type>
    </ExceptionDetail>
    </detail>
    </s:Fault>
    </s:Body>
    </s:Envelope>

    2009年1月10日 5:47
  • 终于弄出来了,是wcf调用我的dal里的data dataservic时uri格式写错了

     

    说到这里有点郁闷,为什么wcf运行时错误不管什么都返回not found呀,太笼统!!!!

     

    2009年1月10日 7:08
  •  大哥,你是怎么解决的啊,小弟也出现这个问题了
    2009年3月10日 1:45
  • 看看是不是这个问题
    把webconfig中的endpoint 的 binding值改成basicHttpBinding
    如:
    <services>
       <service behaviorConfiguration="YouBehavior" name="You">
        <endpoint address="" binding="basicHttpBinding" contract="IYou" >
         <identity>
          <dns value="localhost"/>
         </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
       </service>
      </services>
    2009年6月16日 3:37