首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

WCF有关问题,顶者有分,解决立马结贴~

2012-09-10 
WCF问题,高手请进...顶者有分,解决立马结贴~~~在线等TransOrderPross类C# code[ServiceContract]interface

WCF问题,高手请进...顶者有分,解决立马结贴~~~在线等
TransOrderPross类

C# code
[ServiceContract]    interface TransOrderPross    {        [OperationContract]        void Add(TransOrder data);        [OperationContract]        List<TransOrder> FindAll();        [OperationContract]        void Update(Guid transorderid);        [OperationContract]        void Delete(Guid transorderid);    }

OperationPross类
C# code
 [DataContract]    public class OperationPross:TransOrderPross    {        #region 初始化        public Guid TransOrderID        {            get;            set;        }        public DateTime InputTime        {            get;            set;        }        public string Updater        {            get;            set;        }        public DateTime UpdateTime        {            get;            set;        }        public int Status        {            get;            set;        }        public int IsCancel        {            get;            set;        }        public string Remark        {            get;            set;        }        public string Inputer        {            get;            set;        }        public string TransOrderNO        {            get;            set;        }        public string ConsignMan        {            get;            set;        }        public string ReceiveMan        {            get;            set;        }        public string OrderTotalFee        {            get;            set;        }        public DateTime ConsignDate        {            get;            set;        }        public string OrderLoading        {            get;            set;        }        public string OrderUnloading        {            get;            set;        }        #endregion        DataTransOrderDataContext db = new DataTransOrderDataContext();                public void Add(TransOrder data)        {                        data.TransOrderID = TransOrderID;            data.InputTime = InputTime;            data.Updater = Updater;            data.UpdateTime = UpdateTime;            data.Status = Status;            data.IsCancel = IsCancel;            data.Remark = Remark;            data.Inputer = Inputer;            data.TransOrderNO = TransOrderNO;            data.ConsignMan = ConsignMan;            data.ReceiveMan = ReceiveMan;            data.OrderTotalFee = OrderTotalFee;            data.OrderLoading = OrderLoading;            data.OrderTotalFee = OrderTotalFee;            data.OrderUnloading = OrderUnloading;            db.TransOrder.InsertOnSubmit(data);            db.SubmitChanges();        }                public List<TransOrder> FindAll()        {            var result = from u in db.TransOrder select u;            List<TransOrder> list = result.ToList<TransOrder>();            return list;        }        public void Update(Guid transorderid)        {            var result = from u in db.TransOrder                         where u.TransOrderID == transorderid                         select u;            foreach (TransOrder data in result)            {                data.TransOrderID = TransOrderID;                data.InputTime = InputTime;                data.Updater = Updater;                data.UpdateTime = UpdateTime;                data.Status = Status;                data.IsCancel = IsCancel;                data.Remark = Remark;                data.Inputer = Inputer;                data.TransOrderNO = TransOrderNO;                data.ConsignMan = ConsignMan;                data.ReceiveMan = ReceiveMan;                data.OrderTotalFee = OrderTotalFee;                data.OrderLoading = OrderLoading;                data.OrderTotalFee = OrderTotalFee;                data.OrderUnloading = OrderUnloading;                db.SubmitChanges();            }        }                public void Delete(Guid transorderid)        {            var resutlt = from u in db.TransOrder                         where u.TransOrderID == transorderid                         select u;            db.TransOrder.DeleteAllOnSubmit(resutlt);            db.SubmitChanges();        }    } 


开启服务的Form窗体,点击一个按钮后服务正常开启
C# code
 public partial class ServiceMain : Form    {        public ServiceMain()        {            InitializeComponent();        }        Uri baseAddress = new Uri("http://localhost:8001/");        string WCFservice = "DemoWCF";        private void btn_Off_Click(object sender, EventArgs e)        {            ServiceHost Host = new ServiceHost(typeof(OperationPross), baseAddress);            Host.AddServiceEndpoint(typeof(TransOrderPross), new BasicHttpBinding(), WCFservice);            ServiceMetadataBehavior smb = new ServiceMetadataBehavior();            smb.HttpGetEnabled = true;            Host.Description.Behaviors.Add(smb);            Host.Open();            TB_State.Text = "启动";            TB_Address.Text = baseAddress.ToString() + WCFservice;                        MessageBox.Show("服务正常开启!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);            BtnClose.Enabled = true;            btn_Off.Enabled = false;           // Host.Close();        }            private void BtnClose_Click(object sender, EventArgs e)        {            Uri baseAddress = new Uri("http://localhost:8001/");            ServiceHost Host = new ServiceHost(typeof(OperationPross), baseAddress);            Host.AddServiceEndpoint(typeof(TransOrderPross), new BasicHttpBinding(), WCFservice);            ServiceMetadataBehavior smb = new ServiceMetadataBehavior();            smb.HttpGetEnabled = true;            Host.Description.Behaviors.Add(smb); Host.Close();            MessageBox.Show("服务关闭成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);            TB_State.Text = "关闭";            TB_Address.Text = "尚未获得有效的地址信息!";                       BtnClose.Enabled = false;            btn_Off.Enabled = true;        }        private void button1_Click(object sender, EventArgs e)        {            Application.Exit();        }           }

Main启动函数,启动Form窗体
C# code
class Program    {        static void Main(string[] args)        {            ServiceMain f = new ServiceMain();            Application.Run(f);                    }    }

现在我一开启服务后地址是:http://localhost:8001/DemoWCF,可访问这个地址时出现:由于 ContractFilter 在 EndpointDispatcher 不匹配,因此 Action 为“”的消息无法在接收方处理。这可能是由于协定不匹配(发送方和接收方 Action 不匹配)或发送方和接收方绑定/安全不匹配。请检查发送方和接收方是否具有相同的协定和绑定(包括安全要求,如 Message、Transport、None)这样的错误,有没有人遇到过啊,是不是我这样有问题.请大虾们指点.感激不尽

[解决办法]
帮你顶下
[解决办法]
不会,期待别人帮你回答
[解决办法]
探讨
不会,期待别人帮你回答

[解决办法]
UP UP
[解决办法]
你在右键 添加服务

你把uri地址复制到里面 前往,,,试试是否能找到该服务...
[解决办法]
重新引用一下
[解决办法]
UP.............
[解决办法]
职业代顶
[解决办法]
这问题太难了,我也不知道!.......

[解决办法]
你的
C# code
[OperationContract]        void Add(TransOrder data);        [OperationContract]        List<TransOrder> FindAll(); 


[解决办法]
没细看,你说action为空,没处理,
 那你发送时,判断一下,为空就加点东西.,.
加个属性也好....
[解决办法]
帮顶....
[解决办法]
帮你顶

热点排行