自主WCF服务无法通过WCFTestClient进行测试

我正在尝试使用WCFTestClient测试我自己托管的wcf服务。 我得到一个错误:

错误:无法从http:// localhost:2303 / MyService获取元数据如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您是否已在指定地址启用元数据发布。 有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档.WS- Metadata Exchange错误URI: http:// localhost:2303 / MyService元数据包含参考无法解决:’http:// localhost:2303 / MyService’。 内容类型application / soap + xml; 服务http:// localhost:2303 / MyService不支持charset = utf-8。 客户端和服务绑定可能不匹配。 远程服务器返回错误:(415)无法处理消息,因为内容类型为’application / soap + xml; charset = utf-8’不是预期的类型’text / xml; charset = utf-8′.. HTTP GET错误URI: http:// localhost:2303 / MyService下载’http:// localhost:2303 / MyService’时出错。 请求失败,HTTP状态为400:错误请求。

我的项目结构如下

  1. 作为主机的控制台应用程序
  2. 服务合约
  3. 服务实施

这是我的服务实现和合同类,它们分为两个独立的项目。

namespace MyService { public class MyService : IMyService { public string GetGreeting(string name) { return "Hello " + name; } public string GetYelling(string name) { return "What the hell " + name + "!!"; } } } namespace MyService { [ServiceContract] public interface IMyService { [OperationContract] string GetGreeting(string name); [OperationContract] string GetYelling(string name); } } 

这是控制台应用程序

 namespace MyWCFHost { class Program { static void Main(string[] args) { ServiceHost serviceHost = new ServiceHost(typeof(MyService.MyService), new Uri("http://localhost:2303")); serviceHost.Open(); Console.WriteLine("MyService is running..."); Console.ReadKey(); serviceHost.Close(); } } } 

这是配置文件

                   

我究竟做错了什么?

谢谢你的时间…

编辑

当我尝试通过winforms客户端运行它时服务工作,所以我知道服务正在运行。 问题是如何使用WcfTestClient为测试做好准备。

我怀疑你的MEX端点有问题。 您目前只指定相对地址(“mex”) – 但您的服务中没有定义HTTP的基地址……

我建议:

  • 要么定义一个基地址,然后只使用相对地址“on the top” – 对于常规和MEX端点

要么:

  • 将您的地址定义为完整,完整的地址 – 不仅适用于常规端点,还适用于MEX端点。

因此,将配置更改为:

     

然后我希望你能够获得你的元数据,从而连接到你的服务!

你在运行Windows 7吗?

试试跑步:

 netsh http add urlacl url=http://+:2303/MyService user=DOMAIN\user 

更多信息 ,也在这里

尝试以管理员身份运行Visual Studio。 然后你不需要手动运行像(url = http:// +:2303 / MyService user = PCNAME \ mylogin)这样的命令