此错误原因是WCF服务选择的endpoint中指定的地址没有预留(reserved),MSDN上这篇文章详细描述了问题和解决方法。简单地说有以下几种办法:
- 使用VS自动生成的地址,一般是http://localhost:xxxx/Design_Time_Addresses/ (xxx为端口号),只要是以这个地址开头的都可以正常使用。
- 有些情况下,不能使用这样的地址,比如要在域名根目录下发布一些文件(clientaccesspolicy.xml, crossdomain.xml);又或者要发布了,必须改用一个合适的地址。那么可以自己来预留(reserve)地址,在Vista以上的系统,以管理员身份运行:
netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user
注意如果要预留根,如http://+:80/则最后的"/"是不可少的。