真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

WCF的序列化問題怎么解決-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“WCF的序列化問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“WCF的序列化問題怎么解決”吧!

成都創(chuàng)新互聯(lián)公司主營綏棱網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),綏棱h5微信小程序開發(fā)搭建,綏棱網(wǎng)站營銷推廣歡迎綏棱等地區(qū)企業(yè)咨詢

WCF 基礎(chǔ)連接已經(jīng)關(guān)閉: 連接被意外關(guān)閉。
這個錯誤可能一不小心就會碰到??偨Y(jié)起來應(yīng)該有兩種情況導(dǎo)致:
1、傳輸數(shù)據(jù)過大。
第一種情況,可以采取修改本地引用服務(wù)生成的節(jié)點內(nèi)的屬性解決。
binding節(jié)點中maxReceivedMessageSize的值增大即可。不過一般不建議這樣使用,對于大批量數(shù)據(jù)可采取分頁讀取方式解決。因為大批量數(shù)據(jù)傳輸,影響傳輸速度并且容易出錯。
2、傳輸類中的屬性序列化問題
這種情況我正好碰到過。如下,
服務(wù)端類的是這樣的,其它屬性省略。

[DataContract]
   public class SDataModel
   {
       private string id;
       private DataTypeEnum type;
       [DataMember]
       public string ID
       {
           get { return id; }
           set { id = value; }
       }
       [DataMember]
       public DataTypeEnum Type
       {
           get { return type; }
           set { type = value; }
       }
   }
   [DataContract]
   public enum DataTypeEnum
   {
       [EnumMember]
       類型1 = 1,
       [EnumMember]
       類型2 = 2,
       [EnumMember]
       類型3 = 3,
       [EnumMember]
       類型4 = 4
   }

當(dāng)時有一個方法只需要少量的屬性值就可以了,正好Type這個屬性時不需要的。所以
             SDataModel model = new SDataModel();


             model.ID = item.TBP_ID;
向客戶端傳輸model對象時,沒有包含Type。于是就報錯了,而且怎么也檢查不到,因為服務(wù)端執(zhí)行也正常,但是客戶端卻異常了。
修改就是,在定義該字段時賦初值,改為

[DataContract]
    public class SDataModel
    {
        private string id;
        private DataTypeEnum type=DataTypeEnum.類型1;
        [DataMember]
        public string ID
        {
            get { return id; }
            set { id = value; }
        }
        [DataMember]
        public DataTypeEnum Type
        {
            get { return type; }
            set { type = value; }
        }
    }
    [DataContract]
    public enum DataTypeEnum
    {
        [EnumMember]
        類型1 = 1,
        [EnumMember]
        類型2 = 2,
        [EnumMember]
        類型3 = 3,
        [EnumMember]
        類型4 = 4
    }

另一種如果使用ADO.NET Entity連接數(shù)據(jù)庫生成數(shù)據(jù)模型時,要取消延遲加載。其實在我碰到的問題中,主要是枚舉類型傳輸問題。這里據(jù)我的理解就是。

序列化的過程是,序列化生成器將對象的基本類型 按照對象的結(jié)構(gòu) 解析成流,然后傳輸。接收到以后,解析流中的內(nèi)容,應(yīng)該是將類型都變?yōu)樽址ㄟ^字符串匹配的方式 和本地的基本類型的類型名匹配,然后恢復(fù)對象的類型,從而還原出原對象的結(jié)構(gòu)和值。

但是對也這種自定義的枚舉,如果沒有賦值,是沒有基本類型的,因此序列化就報錯了。導(dǎo)致本地連接被關(guān)閉。而作為基本類型Int,String等因為是基類型,序列化中可以找到與之對應(yīng)的類型,因此不會報錯。

到此,相信大家對“WCF的序列化問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


本文名稱:WCF的序列化問題怎么解決-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/hoijs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部