创建和访问WCF服务.Visual studio 2012给出错误

本文关键字:2012 出错 错误 studio Visual 访问 WCF 服务 创建 | 更新日期: 2023-09-27 18:07:58

我在这里学习WCF http://msdn.microsoft.com/ru-ru/library/bb386386.aspx,我成功地完成了测试服务步骤。然而,在访问服务步骤中,我遇到了一些问题。它构建没有任何错误,但当我试图写smth到textLabel空间和按下button1我得到错误的button1_Click函数,即ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();

错误信息

找不到引用contract>'ServiceReference1的默认端点元素。服务模型客户端配置部分中的IService1'。这可能是因为没有找到您的应用程序的配置文件>>,或者因为在客户端元素中没有找到与此契约匹配的结束点元素>>。

我在app.project文件

中找到这样的代码
<endpoint address="http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService11"
            contract="ServiceReference1.IService1" name="BasicHttpBinding_IService11" />

我100%肯定,代码没有任何错误,因为我从上面的网站复制它没有任何修改。所以我很高兴听到你的设想如何解决这个问题。

创建和访问WCF服务.Visual studio 2012给出错误

您应该在构造客户端时指定端点的name:

using (var client = new ServiceReference1.Service1Client("BasicHttpBinding_IService11"))
{
    client.SomeMethod();
}

或者如果配置文件中只有一个端点,则使用*:

using (var client = new ServiceReference1.Service1Client("*"))
{
    client.SomeMethod();
}

你需要指定名称的原因是,在配置文件中,同一个服务可能有多个端点(例如,使用不同的绑定),如果你不指定名称,框架将不知道你想调用哪个端点。

还请注意我是如何将IDisposable客户机包装在using语句中,以确保在完成处理后正确处理它。