C# 创建和访问WCF服务。Visual studio 2012出现错误

C# 创建和访问WCF服务。Visual studio 2012出现错误,c#,wcf,visual-studio-2012,msdn,C#,Wcf,Visual Studio 2012,Msdn,我在这里学习WCF,并成功地测试了服务步骤。然而,在访问服务步骤时,我遇到了问题。它构建时没有任何错误,但当我试图将smth写入textLabel空间并按下button1时,我在button1_Click函数中得到了错误,即 servicerence1.Service1Client client=newservicerence1.Service1Client() 错误消息 在服务模型客户端配置部分中找不到引用约定>“ServiceReference1.IService1”的默认终结点元素。这可能

我在这里学习WCF,并成功地测试了服务步骤。然而,在访问服务步骤时,我遇到了问题。它构建时没有任何错误,但当我试图将smth写入textLabel空间并按下button1时,我在button1_Click函数中得到了错误,即
servicerence1.Service1Client client=newservicerence1.Service1Client()

错误消息

在服务模型客户端配置部分中找不到引用约定>“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%确信,这段代码没有任何错误,因为我是从上面的网站复制的,没有任何修改。因此,我很高兴听到您的假设如何解决这个问题。

在构建客户端时,您应该指定端点的
名称:

using (var client = new ServiceReference1.Service1Client("BasicHttpBinding_IService11"))
{
    client.SomeMethod();
}
如果配置文件中只有一个端点,请使用
*

using (var client = new ServiceReference1.Service1Client("*"))
{
    client.SomeMethod();
}
需要指定名称的原因是,在配置文件中,同一服务可能有多个端点(例如,具有不同绑定),如果不指定名称,框架将不知道要调用哪个端点


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

“如果调用类库中的服务并从其他项目调用类库,则可能会出现此错误。”在这里,我发现了几乎相同的问题。感谢您的关注,但我不明白应该在哪里编写关于端点的规范。无论如何,我可以尝试再次执行该任务。您应该在实例化代理的位置执行该操作(在
按钮1\u单击
)。对WCF客户端使用
Using
语句是不好的做法,因为它不会正确地处理客户端。看见