none
关于WCF部署时的有些问题? RRS feed

  • 问题

  • 我们在写程序调试时,由于服务器和客户都在本机,所以我们的访问地址一般是http://local:8000/testserver,协议一般用netTcpBinding,但是在实际部署时,情况要复杂的多,如:客户端访问分成局域网访问和互联网访问,地址有多个,还有,如果是局域网,用的协议是可能是netTcpBinding多一些,,如果是互联网,可能用到basicHttpBinding或者netTcpBinding等,也就是说这些都是动态的选择的。感觉用配置文件好像不太方便,是不是要在程序里用代码写(从数据库中读出来配置)?

    2008年3月13日 3:09

答案

  •  

    是完全可以用代码写的,宜且相当简单明了.你参考下:

     

            ServiceHost sh;
            ChannelFactory<Iserver> cf;
            Iserver sv;

     

     

           private void Form1_Load(object sender, EventArgs e)
            {

                Uri url = new Uri("net.p2p://chat");

                NetPeerTcpBinding np = new NetPeerTcpBinding();
                np.Security.Mode = SecurityMode.None;
                np.Resolver.Mode = System.ServiceModel.PeerResolvers.PeerResolverMode.Pnrp;

                ServiceHost sh = new ServiceHost(this);
                sh.AddServiceEndpoint(typeof(Iserver), np, url.ToString());
                
                sh.Open();

                cf = new ChannelFactory<Iserver>(np, new EndpointAddress(url));

                sv = cf.CreateChannel();

            }

    2008年3月23日 17:49