Irw*_*win 5 .net delphi wcf rpc interop
我有一个基于Delphi服务构建的.Net WCF客户端/代理.Delphi服务以我的客户端无法处理的格式提供SOAP消息.
根据这里的指导:Delphi SOAP Envelope和WCF我已经明白WCF期望"Document/Literal/Wrapped"样式成为消息序列化的方式.事实证明,Delphi服务使用"rpc"作为样式.
我无法让delphi服务改变它的风格.
有没有办法告诉WCF客户端使用"rpc"代替.
作为参考,这里是我正在构建的Delphi服务:http://www.tntschools.com/AkiTimeTableService/wsdl/ICourses
小智 4
当以这种方式添加服务引用时,每个生成的消息契约都以类似的方式进行装饰,如下所示:
[DebuggerStepThrough]
[GeneratedCode( "System.ServiceModel", "4.0.0.0" )]
[MessageContract( WrapperName = "GetCourseList", WrapperNamespace = "urn:CoursesIntf-ICourses",
IsWrapped = true )]
public partial class GetCourseListRequest
{
[MessageBodyMember( Namespace = "", Order = 0 )]
public string licence;
public GetCourseListRequest()
{
}
public GetCourseListRequest( string licence )
{
this.licence = licence;
}
}
Run Code Online (Sandbox Code Playgroud)
每个生成的操作合约都以类似的方式进行装饰,如下所示:
[GeneratedCode( "System.ServiceModel", "4.0.0.0" )]
[ServiceContract( ConfigurationName = "ServiceReferences.ICourses" )]
public interface ICourses
{
[OperationContract( Action = "urn:CoursesIntf-ICourses#GetCourseList", ReplyAction = "*" )]
[XmlSerializerFormat( Style = OperationFormatStyle.Rpc, SupportFaults = true,
Use = OperationFormatUse.Encoded )]
[ServiceKnownType( typeof( TCourse ) )]
GetCourseListResponse GetCourseList( GetCourseListRequest request );
// Remaining operation contracts omitted
}
Run Code Online (Sandbox Code Playgroud)
检查Reference.cs以确定您的消息和操作合同是否以相同的方式装饰。如果是的话,问题就出在其他地方。异常消息将有助于追踪问题(例如,它可能是返回的 SOAP 消息中元素的顺序)。
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |