转自:http://blog.csdn.net/bitfan/article/details/4193319

如果使用Visual Studio 2008 SP1开发WCF应用程序时,会发现当使用Visual Studio 2008的新建“WCF服务”模板向项目中添加WCF服务时,Visual Studio 2008总是使用wsHttpBinding绑定,并且使用以下格式的地址:

<host>
    <baseAddresses>
         <add baseAddress="http://localhost:8731/Design_Time_Addresses/WCF服务名"/>
     </baseAddresses>
</host>

这里面有一个神秘的端口8731和一个神秘的地址Design_Time_Addresses。

让我们来做个实验:

在Vista中关闭用户账户控制,然后启动Visual Studio 2008,基于新建“WCF服务”模板向项目中添加一个WCF服务(不妨取名MyWCFService),生成的默认服务地址为:

<baseAddresses>
    <add baseAddress="http://localhost:8731/Design_Time_Addresses/MyWCFService/" />
</baseAddresses>

去掉Design_Time_Addresses,将其改为:

<baseAddresses>
                        <add baseAddress="http://localhost:8731/MyWCFService/" />
 </baseAddresses>

你会发现WCF的服务启动不会有任何问题。

然而,现在打开用户账户控制,再次使用Visual Studio 2008打开并运行同样的代码,Visual Studio 2008会抱怨:

将其改回:

<baseAddresses>
    <add baseAddress="http://localhost:8731/Design_Time_Addresses/MyWCFService/" />
</baseAddresses>

发现WCF服务又可以启动了。

刚遇到这种情况时真得很奇怪,“8731“端口和“Design_Time_Addresses”到底有何“神秘”之处,有这种怪异的特性?

Google一下,终于在Cesar de la Torre的博客中发现了问题原因(http://blogs.msdn.com/cesardelatorre/archive/2008/01/27/design-time-addresses-url-in-wcf-net-3-5.aspx):

原来Visual studio 2008在安装时注册了一个针对"http://+:8731/Design_Time_Addresses"命名空间的ACL(Access Control List),从而使运行Visual studio的当前用户(他们属于此ACL)不需要Administrator权限也可以开发和调试WCF服务。

由此真相大白,如果你在开发WCF服务时需要指定不同于默认值的WCF服务地址,请以“管理员”身份运行Visual Studio 2008。

或者更简单一些,关掉用户帐户控制,我一直觉得Vista的"用户帐户控制"功能实在烦人,有了它也不见得就安全了。

(转)WCF中神秘的“8733"端口和“Design_Time_Addresses”的更多相关文章

  1. WCF服务启用与配置端口共享

    在 Windows Communication Foundation (WCF) 应用程序中使用 net.tcp:// 端口共享的最简单方式是使用 NetTcpBinding 公开一个服务. 此绑定提 ...

  2. WCF中常用的binding方式

    WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务.WSHttpBinding: 比 Basi ...

  3. C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议

    URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...

  4. 我的WCF之旅(3):在WCF中实现双工通信

    双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...

  5. 在WCF中实现双工通信

    双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...

  6. WCF中,通过C#代码或App.config配置文件创建ServiceHost类

    C# static void Main(string[] args) { //创建宿主的基地址 Uri baseAddress = new Uri("http://localhost:808 ...

  7. WCF学习之旅—WCF中传统的异常处理(十六)

    WCF中的异常处理 在软件开发过程中,不可能没有异常的出现,所以在开发过程中,对不可预知的异常进行解决时,异常处理显得尤为重要.对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地 ...

  8. 在Wcf中应用ProtoBuf替代默认的序列化器

    Google的ProtoBuf序列化器性能的牛逼已经有目共睹了,可以把它应用到Socket通讯,队列,Wcf中,身为dotnet程序员一边期待着不久后Grpc对dotnet core的支持更期待着Wc ...

  9. ajax调用本地wcf中的post和get

    我们可以通过jQuery调用本地或者远程的wcf服务,本文讲解的是对本地wcf服务的post和get调用方式. post和get到底有什么区别呢?此处不作详述. 但是,post对请求的数据格式更为严格 ...

随机推荐

  1. vue2.0一安装的插件详解

    babel-runtime 对ES语法转义 fastclick  移动端300ms兼容 babel-polyfill 兼容Ie浏览器 //babel-polyfill引用 推荐采用webpack入口文 ...

  2. js 横屏 竖屏 相关代码 与知识点

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  3. Java并发-懒汉式单例设计模式加volatile的原因

    懒汉式单例的double check.例一: class SingletonClass{ private static SingletonClass instance = null; private ...

  4. Linux 终端设备

    <Linux终端设备详解> https://www.cnblogs.com/shineshqw/articles/2423989.html

  5. Vuebnb 一个用 vue.js + Laravel 构建的全栈应用

    今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel.它会在Packt出版社在2018年初出版. 这本书是围绕着一个案例研究项目,Vuebnb,简单克隆Airbnb.在这 ...

  6. SPring中quartz的配置(可以用实现邮件定时发送,任务定时执行,网站定时更新等)

    http://www.cnblogs.com/kay/archive/2007/11/02/947372.html 邮件或任务多次发送或执行的问题: 1.<property name=" ...

  7. DataTable表连接

    public static System.Data.DataTable TableJoin(System.Data.DataTable dt, System.Data.DataTable dtDeta ...

  8. 7-性能测试i报告

    性能测试报告概述 1.测试报告是指把测试的过程和结果写成文档:对发现的问题和缺陷进行分析:为纠正软件的存在的质量问题提供依据: 为软件验收和交付打下基础 2.性能测试报告属于软件测试报告的一种,主要针 ...

  9. Java虚拟机的相关笔记

    1.垃圾GC回收事件Minor GC(只清除新生代),Full GC(清除新生代和老年代),Major GC(清除新生.老年代和持久代). 2.堆分为新生代.老年代和持久代,持久代一般存放静态文件. ...

  10. chrome、firefox表单自动提交诱因 -- 非type=hidden的单输入域(input)

    开发任务中遇到很费解的一个form自动提交问题,form中只有一个input时回车会触发自动提交表单,当在多一个非type=hidden的input时,又不会出现表单自动提交. 代码示例: 会出现自动 ...