(转)WCF中神秘的“8733"端口和“Design_Time_Addresses”
转自: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”的更多相关文章
- WCF服务启用与配置端口共享
在 Windows Communication Foundation (WCF) 应用程序中使用 net.tcp:// 端口共享的最简单方式是使用 NetTcpBinding 公开一个服务. 此绑定提 ...
- WCF中常用的binding方式
WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务.WSHttpBinding: 比 Basi ...
- C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议
URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...
- 我的WCF之旅(3):在WCF中实现双工通信
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...
- 在WCF中实现双工通信
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...
- WCF中,通过C#代码或App.config配置文件创建ServiceHost类
C# static void Main(string[] args) { //创建宿主的基地址 Uri baseAddress = new Uri("http://localhost:808 ...
- WCF学习之旅—WCF中传统的异常处理(十六)
WCF中的异常处理 在软件开发过程中,不可能没有异常的出现,所以在开发过程中,对不可预知的异常进行解决时,异常处理显得尤为重要.对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地 ...
- 在Wcf中应用ProtoBuf替代默认的序列化器
Google的ProtoBuf序列化器性能的牛逼已经有目共睹了,可以把它应用到Socket通讯,队列,Wcf中,身为dotnet程序员一边期待着不久后Grpc对dotnet core的支持更期待着Wc ...
- ajax调用本地wcf中的post和get
我们可以通过jQuery调用本地或者远程的wcf服务,本文讲解的是对本地wcf服务的post和get调用方式. post和get到底有什么区别呢?此处不作详述. 但是,post对请求的数据格式更为严格 ...
随机推荐
- Django TypeError: isinstance() arg 2 must be a type or tuple of types
报错: TypeError: isinstance() arg must be a type or tuple of types from django.db import modelsfrom dj ...
- PAT 1012 数字分类 (20)(代码+测试点)
1012 数字分类 (20)(20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求 ...
- poj 2785 让和为0 暴力&二分
题目链接:http://poj.org/problem?id=2785 大意是输入一个n行四列的矩阵,每一列取一个数,就是四个数,求有多少种着四个数相加和为0的情况 首先脑海里想到的第一思维必然是一个 ...
- Vim中如何使用正则进行搜索
#set magic这句的作用在于将vim的正则打开. 这样就可以搜索了. 至于正则的相关的内容.在此抄一份.以免于下次自己还要去百度. 符号 匹配 . (dot) 任意单一字符 \d 任意一位数字 ...
- [ES]elasticsearch章2 ES查询过程解析
es服务端是准确知道每个document分布在哪个shard上: search一个比较复杂的执行模式,因为我们不知道那些document会被匹配到,任何一个shard上都有可能,所以一个search请 ...
- Squares of a Sorted Array LT977
Given an array of integers A sorted in non-decreasing order, return an array of the squares of each ...
- 学习python 多进程和多线程
''' 学习多进程和多线程 ''' import multiprocessing def deadLoop(): while True: pass if __name__ == '__main__': ...
- ServiceDesk Plus更有序地组织IT项目
- html-day04
html-day04 1.html属性的弊端 1.完成相同的功能需要不同的属性支持 2.可维护性不高2.CSS 1.什么是CSS Cascading Style Sheet 层叠样式表.级联样式表.样 ...
- python学习之ansible api
Python API 2.0 从2.0的事情开始更复杂一些,但是你会得到更多离散和可读的类: #!/usr/bin/env python import json from collections im ...