惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
IT之家
IT之家
S
SegmentFault 最新的问题
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 聂微东
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
宝玉的分享
宝玉的分享
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
NISL@THU
NISL@THU
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
aimingoo的专栏
aimingoo的专栏
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
F
Fortinet All Blogs
博客园 - Franky
L
Lohrmann on Cybersecurity
S
Secure Thoughts
量子位
V
Vulnerabilities – Threatpost
Last Week in AI
Last Week in AI
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LINUX DO - 最新话题
I
InfoQ
C
CERT Recently Published Vulnerability Notes
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
G
GRAHAM CLULEY
Cisco Talos Blog
Cisco Talos Blog

博客园 - 同洲共际海让路

国内首本全面深入介绍.NET互操作技术(P/Invoke『或PInvoke,平台调用』,C++ Interop『C++/CLI』,COM Interop)的参考书籍 博客园开发者征途系列图书——《你必须知道的.NET》 一站式查询八字、五行、星座、五格——美名腾人名解析 一句话让别人立马记住你的名字——美名腾智能人名解析 何谓智能起名? 美名腾智能起名系统有了新界面 千名万名,到美名腾来试金。【写在美名腾起名系统Beta版成功发布】 [原]Bug Report,已提交给微软。平台调用调试时,无法对非托管函数进行单步的错误 [原]动态平台调用 part 3 (Final) [原]动态平台调用 part 2 [原]动态平台调用 part 1 JavaScript Debugging and Intellisense, JavaScript obfuscator etc from VS 2005 to VS 2008 (VS2005到2008的变迁,JavaScript调试,智能感知/智能感应功能,JavaScript的混淆、压缩等功能的海变桑田) 终于见到了传说中的Scott Guthrie 如何为Team Foundation Server的Daily Build添加自定义操作 客户端安装Team Explorer 2005后,使用时出现package load failure错误的修正 WCF Part 7 : Bindings WCF Part 6 : Address 推荐一个好玩的好东西,ILMerge,微软出的,合并多个.NET组件成一个 WCF Part 5 : Consuming the service
[译]WCF Part 4 : Make your service visible through metadata
同洲共际海让路 · 2007-11-29 · via 博客园 - 同洲共际海让路

    上篇文章中讲述了如何创建一个服务,并且如何通过设置app.config中的某些信息来host这个服务。这一章我们接着这个例子来说明如何使用metadata来暴露这个服务。方法很简单,只要加上一个暴露他的端点(endpoint)即可,这次又是老话重提,ABC。这个endpoint被称为MEX endpoint, 是Metadata EXchange两个单词的首字母合起来的缩写。实现这个也不用写任何代码,只要对配置文件进行一些配置即可。在app.config上打开“Service Configuration Editor”,打开"Advanced"文件夹,然后选中"Service Behaviors",选择添加一个新的service behavior。将NewBehavior改成HelloServiceBehavior,再点击添加按钮,选择'ServiceMetadata'选项。

 

    下面我们为endpoint配置新的行为(behavior)。再次在数节点中选中创建的这个服务。这部分可能是最容易被遗忘的,但是必须将刚刚配置好的行为绑定到这个服务上。其实非常容易,只需要从服务的BehaviorConfiguration属性的列表中选择即可。
    接下来就该是添加MEX endpoint了,选择服务下面的"Endpoints"文件夹,右键点击,然后选择添加新endpoint。将地址设置为http://localhost:8080/HelloService/MEX/, 选择绑定方式为"mexHttpBinding",在契约(contract)中填写"IMetadataExchange"。保存,退出配置文件编辑器,就能看到如下的配置信息:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="HelloServiceBehavior">
                    <serviceMetadata />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="HelloServiceBehavior" name="Classa.Wcf.Samples.Hello">
                <endpoint address="http://localhost:8080/HelloService/" binding="basicHttpBinding"
                    bindingConfiguration="" contract="Classa.Wcf.Samples.IHello" />
                <endpoint address="http://localhost:8080/HelloService/MEX/" binding="mexHttpBinding" bindingConfiguration=""
                    contract="IMetadataExchange" />
            </service>
        </services>
    </system.serviceModel>
</configuration>

    按F5运行这个服务,虽然看起来和之前并无太大分别,但是现在我们就能创建一个代理了。打开Visual Studio Command Prompt (打开菜单Visual Studio 2005/Visual Studio Tools就能找到)并执行如下命令:
    svcutil.exe /o:client.cs /config:app.config http://localhost:8080/HelloService/MEX/
    打开产生的文件,尤其是app.config,就会发现,这个配置文件包含了一份对之前创建的那个服务的一个ABC引用。

    注:要查看原始文章,请看这里的全部索引