Silverlight的WCF投掷远程服务器返回错误:NOTFOUND [英] Silverlight WCF throwing The remote server returned an error: NotFound

查看:129
本文介绍了Silverlight的WCF投掷远程服务器返回错误:NOTFOUND的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图弄清楚为什么发生这种情况。其超强的怪异

以下是确切的电话,我有。每当我再补充一点,在车辆datacontract我得到远程服务器端额外datameber返回了一个错误:NOTFOUND。调用pick.SaveVehiclesAsync(infokey把数据)时;

从Silverlight的侧

 公共无效SaveVehicles(infokey把infokey把,的ObservableCollection< VehicleFullInfoModel> vehicleFullInfoCollection,事件处理程序< SaveVehiclesEventArgs>回调)
    {
        VAR挑=新** ProjectServiceClient **();
        pick.SaveVehiclesCompleted + =(发件人,E)=>
        {
            如果(回调!= NULL)
                回调(这一点,新SaveVehiclesEventArgs(e.Result,e.fault));
        };
        VAR数据=
            新的ObservableCollection< VehicleFullInfo>(vehicleFullInfoCollection.Select(REC => rec.Data).ToList());
        pick.SaveVehiclesAsync(infokey把,数据);
    }
 

-------------从WCF服务

 公共接口IProjectService
{
    [OperationContract的]
    字符串SaveVehicles(infokey把infokey把,IList的< VehicleFullInfo> vehicleFullInfoCollection,出FaultContract故障);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)
公共类ProjectService:IProjectService
{
    公共字符串SaveVehicles(infokey把infokey把,IList的< VehicleFullInfo> vehicleFullInfoCollection,出FaultContract故障)
    {
        返回PickVehicles.SaveVehicles(infokey把,vehicleFullInfoCollection,出故障);
    }
}
 

--------- PickVehicles类-------

执行保存到文件

------------数据合约

  [DataContract]
公共类VehicleFullInfo
{
    [数据成员]
    大众汽车车{获得;私定; }
}
 

------车数据合约

  [DataContract]
公共类车辆
{
    公车(数据vehicleData,INT指数)
    {

    }

    [数据成员]
    公共字符串VehicleNumber {获得;组; }

    [数据成员]
    公共BOOL? IsVehicleFromPolicy {获得;私定; }

    [数据成员]
    公共BOOL? IsInclude {获得;组; }

    [数据成员]
    公共字符串VIN {获得;组; }

    [数据成员]
    公共VehicleTypeEnum类型{获取;组; }

    [数据成员]
    公众诠释? ModelYear {获得;组; }

    [数据成员]
    公共VehicleMake制作{获得;组; }

    [数据成员]
    公共字符串型号{获得;组; }

    [数据成员]
    公共BOOL? HasAntiTheft {获得;组; }

    [数据成员]
    公共AirBagTypeEnum AirBagType {获得;组; }

    [数据成员]
    公众诠释? GarageZip {获得;组; }

    [数据成员]
    公共VehicleUseTypeEnum VehicleUseType {获得;组; }

    [数据成员]
    公众诠释?万里{获得;组; }

    [数据成员]
    公众诠释? TrailerValue {获得;组; }

    [数据成员]
    公共BOOL? IsMotorhomeSold {获得;组; }

    [数据成员]
    公众诠释? TrailerCamperLength {获得;组; }

    [数据成员]
    公共字符串TrailerDesc {获得;组; }

    [数据成员]
    公众诠释? TrailerGrossWeight {获得;组; }

    [数据成员]
    公共字符串ExtraField {获得;组; }
}
 

解决方案

未找到是对Silverlight的一个通用的错误,可能意味着很多东西 - 跨域问题,任何非200网络响应等有一些事情可以做,如启用跟踪在服务器端,还是在看网络流量的工具,如提琴手,这将给你更多的信息你的错误。

在<一的职位href="http://blogs.msdn.com/b/silverlightws/archive/2008/04/16/debugging-web-service-usage-in-silverlight-2.aspx" rel="nofollow">http://blogs.msdn.com/b/silverlightws/archive/2008/04/16/debugging-web-service-usage-in-silverlight-2.aspx有一些调试信息受Silverlight制作WCF调用时非常有用。

I'm trying to figure why this is happening. Its super weird

Following are the exact calls i have. Whenever i add that extra datameber at the end of vehicles datacontract i get remote server returned an error: NotFound. when calling pick.SaveVehiclesAsync(infoKey, data);

From Silverlight Side

public void SaveVehicles(InfoKey infoKey, ObservableCollection<VehicleFullInfoModel> vehicleFullInfoCollection, EventHandler<SaveVehiclesEventArgs> callBack)
    {
        var pick = new **ProjectServiceClient**();
        pick.SaveVehiclesCompleted += (sender, e) =>
        {
            if (callBack != null)
                callBack(this, new SaveVehiclesEventArgs(e.Result, e.fault));
        };
        var data =
            new ObservableCollection<VehicleFullInfo>(vehicleFullInfoCollection.Select(rec => rec.Data).ToList());
        pick.SaveVehiclesAsync(infoKey, data);
    }

------------- From WCF service

public interface IProjectService
{
    [OperationContract]
    string SaveVehicles(InfoKey infoKey, IList<VehicleFullInfo> vehicleFullInfoCollection, out FaultContract fault);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ProjectService : IProjectService
{
    public string SaveVehicles(InfoKey infoKey, IList<VehicleFullInfo> vehicleFullInfoCollection, out FaultContract fault)
    {      
        return PickVehicles.SaveVehicles(infoKey, vehicleFullInfoCollection,  out fault);
    }
}

--------- PickVehicles Class-------

Do Saving to a file

------------ Data Contract

[DataContract]
public class VehicleFullInfo
{
    [DataMember]
    public Vehicle Vehicle { get; private set; }
}

------ Vehicle Data Contract

[DataContract]
public class Vehicle
{
    public Vehicle(Data vehicleData, int index)
    {

    }

    [DataMember]
    public string VehicleNumber { get; set; }

    [DataMember]
    public bool? IsVehicleFromPolicy { get; private set; }

    [DataMember]
    public bool? IsInclude { get; set; }

    [DataMember]
    public string VIN { get; set; }

    [DataMember]
    public VehicleTypeEnum Type { get; set; }

    [DataMember]
    public int? ModelYear { get; set; }

    [DataMember]
    public VehicleMake Make { get; set; }

    [DataMember]
    public string Model { get; set; }

    [DataMember]
    public bool? HasAntiTheft { get; set; }

    [DataMember]
    public AirBagTypeEnum AirBagType { get; set; }

    [DataMember]
    public int? GarageZip { get; set; }

    [DataMember]
    public VehicleUseTypeEnum VehicleUseType { get; set; }

    [DataMember]
    public int? Miles { get; set; }

    [DataMember]
    public int? TrailerValue { get; set; }

    [DataMember]
    public bool? IsMotorhomeSold { get; set; }

    [DataMember]
    public int? TrailerCamperLength { get; set; }

    [DataMember]
    public string TrailerDesc { get; set; }

    [DataMember]
    public int? TrailerGrossWeight { get; set; }

    [DataMember]
    public string ExtraField { get; set; }
}

解决方案

Not Found is a generic error on Silverlight which can mean a lot of things - cross-domain issues, any non-200 responses from the network, etc. There are a few things you can do, such as enabling tracing on the server side, or looking at the network traffic with a tool such as Fiddler, which will give you more information about your error.

The post at http://blogs.msdn.com/b/silverlightws/archive/2008/04/16/debugging-web-service-usage-in-silverlight-2.aspx has some information which are useful when debugging WCF calls made by Silverlight.

这篇关于Silverlight的WCF投掷远程服务器返回错误:NOTFOUND的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆