我有一个使用WCF构建的第三方应用程序。它作为Windows服务安装,默认情况下支持 wsHttpBinding
和 basicHttpBinding
。
有没有办法切换到更优化的绑定,例如 tcpBinding
或 named pipes
?
我将在同一服务器中使用该服务,因此命名管道是一种选择。
我想知道我是否可以通过修改Windows服务的.config文件在第三方上完成。
答案 0 :(得分:3)
如果您提到的WCF服务器服务正在使用“.config”文件进行初始化,那么应该可以修改行为(这是使用配置文件的重点:您可以修改参数而无需重新编译代码)。
尝试添加新的绑定配置并修改端点的“binding”和“bindingConfiguration”属性以指向新的绑定。
在客户端配置中,设置相同的绑定类型,或者如果已配置metadataExchange,请更新服务引用并查看客户端的配置是否已更新。
答案 1 :(得分:0)
您只需要在app.config中为服务创建一个新的绑定配置,其具有与您要以不同方式托管的类型匹配的合同属性。这将创建一个单独的服务主机,该主机可能对组件/服务有效,也可能无关紧要。合同属性在这里是关键,因为这是WCF将如何确定要使用的绑定/端点配置。 “WCF ABC =地址,绑定,合同”,指定这三个,你应该启动并运行。
还可以将Windows Service WCF服务作为IIS WCF服务托管,方法是在Web应用程序项目中引用必要的程序集,然后创建标识相应基类的必要.svc文件。