Could not find default endpoint
element that references contract
‘IEmailService’ in the ServiceModel
client configuration section. This
might be because no configuration file
was found for your application,or
because no endpoint element matching
this contract could be found in the
client element.
在排除此错误时,我创建了一个简单的Windows窗体应用程序,其中我尝试使用相同的Web服务.使用此测试应用程序,我可以成功连接到Web服务,并且我得到一个有效的响应.但是,通过从应用程序的app.config文件中删除system.serviceModel节点及其所有子节点,我可以在我的测试应用程序中再现上面列出的确切错误(我可能不需要删除该部分的所有内容,不确定).所以,我的第一个想法是,我需要添加该部分到应用程序的app.config文件,一切都应该是正常的.不幸的是,由于荒谬的原因,我不会进入这里,这不是一个选择.所以,我不得不在客户端应用程序的代码中生成这些信息.
我希望有人能帮助我解决这个问题,也可以指出我为这种问题提供了一个很好的资源.
是否可以在客户端应用程序中以代码形式创建端点配置?
解决方法
使用它的最简单的方法是使用不需要参数的构造函数实例化客户端代理,只需从app.config中获取信息:
YourServiceClient proxy = new YourServiceClient();
这需要配置文件具有< client>输入您的服务合同 – 如果没有,您将收到您的错误.
但由WCF运行时生成的客户端代理类也有其他构造函数,一个是端点地址和一个绑定,例如:
BasicHttpBinding binding = new BasicHttpBinding(SecurityMode.None); EndpointAddress epa = new EndpointAddress("http://localhost:8282/basic"); YourServiceClient proxy = new YourServiceClient(binding,epa);