﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-天下-随笔分类-WCF</title><link>http://www.cppblog.com/aaxron/category/21225.html</link><description>记录修行的印记
</description><language>zh-cn</language><lastBuildDate>Thu, 16 Jun 2016 01:51:58 GMT</lastBuildDate><pubDate>Thu, 16 Jun 2016 01:51:58 GMT</pubDate><ttl>60</ttl><item><title>精简版本WCF  DEMO</title><link>http://www.cppblog.com/aaxron/archive/2016/06/16/213727.html</link><dc:creator>天下</dc:creator><author>天下</author><pubDate>Thu, 16 Jun 2016 01:46:00 GMT</pubDate><guid>http://www.cppblog.com/aaxron/archive/2016/06/16/213727.html</guid><wfw:comment>http://www.cppblog.com/aaxron/comments/213727.html</wfw:comment><comments>http://www.cppblog.com/aaxron/archive/2016/06/16/213727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/aaxron/comments/commentRss/213727.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/aaxron/services/trackbacks/213727.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.ServiceModel;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">添加System.ServiceModel引用</span><span style="color: #008000"><br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.ServiceModel.Channels;<br /><br /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;ConsoleApplication1<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;[ServiceContract]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;IHelloWCF<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[OperationContract]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Say(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;input);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">sealed</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloService&nbsp;:&nbsp;IHelloWCF<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Say(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;input)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">Hello&nbsp;{0}</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;input);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uri&nbsp;address&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Uri(</span><span style="color: #000000">"</span><span style="color: #000000">http://127.0.0.1:8733/IHelloWCF</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BasicHttpBinding&nbsp;binding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BasicHttpBinding();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServiceHost&nbsp;svc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ServiceHost(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(HelloService));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svc.AddServiceEndpoint(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(IHelloWCF),&nbsp;binding,&nbsp;address);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svc.Opened&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">delegate</span><span style="color: #000000">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;HelloWCF&nbsp;receiving&nbsp;application&nbsp;is&nbsp;ready</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svc.Open();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChannelFactory</span><span style="color: #000000">&lt;</span><span style="color: #000000">IHelloWCF</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;factory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ChannelFactory</span><span style="color: #000000">&lt;</span><span style="color: #000000">IHelloWCF</span><span style="color: #000000">&gt;</span><span style="color: #000000">(binding,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;EndpointAddress(address));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IHelloWCF&nbsp;proxy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;factory.CreateChannel();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy.Say(</span><span style="color: #000000">"</span><span style="color: #000000">张三</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy.Say(</span><span style="color: #000000">"</span><span style="color: #000000">李四</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy.Say(</span><span style="color: #000000">"</span><span style="color: #000000">王二麻子</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svc.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div> <img src ="http://www.cppblog.com/aaxron/aggbug/213727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/aaxron/" target="_blank">天下</a> 2016-06-16 09:46 <a href="http://www.cppblog.com/aaxron/archive/2016/06/16/213727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WCF元数据公布的2种方式：httpGetEnabled与mex</title><link>http://www.cppblog.com/aaxron/archive/2016/06/15/213718.html</link><dc:creator>天下</dc:creator><author>天下</author><pubDate>Wed, 15 Jun 2016 07:42:00 GMT</pubDate><guid>http://www.cppblog.com/aaxron/archive/2016/06/15/213718.html</guid><wfw:comment>http://www.cppblog.com/aaxron/comments/213718.html</wfw:comment><comments>http://www.cppblog.com/aaxron/archive/2016/06/15/213718.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/aaxron/comments/commentRss/213718.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/aaxron/services/trackbacks/213718.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">WCF元数据公布的2种方式：httpGetEnabled与mex<br />一、元数据即WSDL，描述了服务的细节，以便客户端使用。<br />二、必须为服务配置ServiceMetadata行为，才能为其生成WSDL，才能再使用httpGetEnabled或mex将其公布出去<br />三、这两种方式公布出去的WSDL无区别。但公布的方式有区别<br /></span><span style="color: #000000">1</span><span style="color: #000000">、httpGetEnabled</span><span style="color: #000000">=</span><span style="color: #0000ff">true</span><span style="color: #000000">，类似的还有httpsGetEnabled</span><span style="color: #000000">=</span><span style="color: #0000ff">true</span><span style="color: #000000"><br />此方式通过在服务在的URL后加&#8220;</span><span style="color: #000000">?</span><span style="color: #000000">wsdl&#8221;的方式公布WSDL，可直接通过HTTP访问得到。<br /><br /></span><span style="color: #000000">2</span><span style="color: #000000">、mex<br />此方式以一般的终结点方式公布，支持各种协议：http、tcp、NamedPipe</span></div> <img src ="http://www.cppblog.com/aaxron/aggbug/213718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/aaxron/" target="_blank">天下</a> 2016-06-15 15:42 <a href="http://www.cppblog.com/aaxron/archive/2016/06/15/213718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>