none
为何服务端的Console.WriteLine没有被执行? RRS feed

  • 问题

  • 大家好啊,我用VS2012(3.5 version of net framework)做了一个WCF通讯双工程序:

    【WCF服务端部分】

    namespace WCFTest
    {
        /// <summary>
        /// 服务端WCF接口,指定了回调的接口
        /// </summary>
        [ServiceContract(CallbackContract=typeof(IClientCallBack),SessionMode=SessionMode.Required)]
        public interface IServiceMethod
        {
            /// <summary>
            /// 接受客户端的传来内容,并调用客户端名字
            /// </summary>
            /// <param name="name"></param>
            [OperationContract(IsOneWay=true)]
            void GetName(string name);
        }
    
        [ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Multiple)]
        public class ServiceMethodImpl : IServiceMethod
        {
            public void GetName(string name)
            {
                Console.WriteLine("你好客户端:"+name);
                IClientCallBack clientCallBack = OperationContext.Current.GetCallbackChannel<IClientCallBack>();
                clientCallBack.OutPutResult("微软公司");
            }
        }
    
    }

    namespace WCFTest
    {
        /// <summary>
        /// 客户端
        /// </summary>
        public interface IClientCallBack
        {
            /// <summary>
            /// 客户端函数
            /// </summary>
            [OperationContract(IsOneWay=true)]
            void OutPutResult(string name);
        }
    }

    【客户端部分】

    namespace WCFConsoleTest
    {
        public class ClientResponse : IServiceMethodCallback
        {
            public void OutPutResult(string name)
            {
                Console.WriteLine("你好服务端:"+name);
            }
        }
    
        public class Program
        {
            static void Main(string[] args)
            {
                IServiceMethod sm = new ServiceMethodClient(new InstanceContext(new ClientResponse()));
                sm.GetName("张三");
                Console.Read();
            }
        }
    }

    但是输出结果:

    为什么服务端的“GetName”中那个“你好客户端……”没有被执行呢?谢谢了。


    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年9月22日 6:57

答案

全部回复