在客户端应用程序中,在代码中创建WCF端点配置?

我正在尝试从.NET客户端应用程序使用WCF Web服务,我想我需要能够以编程方式创建端点,但是我不知道如何.我想我需要这样做,因为当我尝试运行应用程序时,我得到以下错误

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文件,一切都应该是正常的.不幸的是,由于荒谬的原因,我不会进入这里,这不是一个选择.所以,我不得不在客户端应用程序的代码生成这些信息.

我希望有人能帮助我解决这个问题,也可以指出我为这种问题提供了一个很好的资源.

是否可以在客户端应用程序中以代码形式创建端点配置?

解决方法

认情况下,当您执行添加服务引用操作时,WCF运行时将为您生成客户端代理.

使用它的最简单的方法是使用不需要参数的构造函数实例化客户端代理,只需从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);

使用此设置,根本不需要配置文件 – 您正在代码中定义所有内容.当然,您也可以在代码中设置绑定和/或端点的任何其他属性.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些