Proxy 使用WCF代理将服务引用(WCF,VS2008)添加到外部服务

Proxy 使用WCF代理将服务引用(WCF,VS2008)添加到外部服务,proxy,reference,wcf,Proxy,Reference,Wcf,我使用VS2008、.NET3.5 有一个外部Web服务(它是PHP实现,但不介意实现-.net、java、PHP等等) 在我的项目csproj中,我希望向WebService添加服务引用,并希望使用WCF 在VS2008中添加服务引用时,会创建WCF代理 添加服务引用(外部服务)的最佳实践(模式和实践)是什么 WCF代理生成器(我认为是同一个svcuti命令)生成如下的源代码。管理生成的代码可能会很有趣(ServiceContractAttribute命名空间=”http://192.168.

我使用VS2008、.NET3.5

有一个外部Web服务(它是PHP实现,但不介意实现-.net、java、PHP等等)

在我的项目csproj中,我希望向WebService添加服务引用,并希望使用WCF

在VS2008中添加服务引用时,会创建WCF代理

添加服务引用(外部服务)的最佳实践(模式和实践)是什么

WCF代理生成器(我认为是同一个svcuti命令)生成如下的源代码。管理生成的代码可能会很有趣(ServiceContractAttribute命名空间=”http://192.168.50.63/WebService使用IP地址和OperationContractAttribute(操作=)http://devservername/webservice/SmoBridge.php/login“使用服务器名)

更新:

Erwyn关于正确关闭故障WCF通道的建议。

为什么ClientBase Dispose需要抛出故障状态?(或者,关闭和中止有什么区别?)

查看以下内容:

我认为这是一个复杂的技术

问候,


Mazhar Karimi

我不知道为什么会有任何关于添加引用的特定最佳实践。话虽如此,Visual Studio中的“刷新引用”命令(右键单击现有服务引用)有时效果不太好,因此手动使用
svcuti
命令更容易,并且在解决方案中有一个更新服务引用的
.bat
文件(
svcuti
是“添加服务引用”在幕后使用的)


此外,如果您引用的服务返回数组,您可以让WCF自动将其转换为通用列表(或其他类型)-这可能会使事情变得更简单。

但据我所知,使用“添加Web引用”option不使用WCF。请阅读全文,我们在这种情况下也使用相同的技术。thx,另一个引用了使用.NET实现任何web服务的最佳实践(不仅是php,还有.NET WCF服务、java…)的任何注释:为什么ClientBase Dispose需要抛出故障状态?(或者,关闭和中止有什么区别?)与使用WCF代理生成器(自定义工具)相比,管理WCF代理的代码和其他方面可能会非常有趣。
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://192.168.50.63/WebService", ConfigurationName="ServiceEasyVista.WebServicePortType")]
public interface WebServicePortType {

    [System.ServiceModel.OperationContractAttribute(Action="http://devservername/webservice/SmoBridge.php/login", ReplyAction="*")]
    [System.ServiceModel.XmlSerializerFormatAttribute(Style=System.ServiceModel.OperationFormatStyle.Rpc, Use=System.ServiceModel.OperationFormatUse.Encoded)]
    [return: System.ServiceModel.MessageParameterAttribute(Name="return")]
    string login(string SESSION_ID, [System.ServiceModel.MessageParameterAttribute(Name="LOGIN")] string LOGIN1, string PASSWORD, string COMPANY_ACCOUNT);