Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF接收HTTP响应时出错_Wcf_Datacontract_Datamember - Fatal编程技术网

WCF接收HTTP响应时出错

WCF接收HTTP响应时出错,wcf,datacontract,datamember,Wcf,Datacontract,Datamember,以下是我的WCF服务应该返回的内容。当我从ResponseModel中命令PaymentData并在该类中添加其他DataMember时,它就起作用了 [DataContract] public class ResponseModel { [DataMember] public PaymentData PaymentData { get; set; } } 以下是PaymentData类: [DataContract] public class PaymentData {

以下是我的WCF服务应该返回的内容。当我从ResponseModel中命令PaymentData并在该类中添加其他DataMember时,它就起作用了

[DataContract]
public class ResponseModel
{
    [DataMember]
    public PaymentData PaymentData { get; set; }
}
以下是
PaymentData
类:

[DataContract]
public class PaymentData
{
    [DataMember]
    public PaymentType PaymentType { get; set; }
    [DataMember]
    public string CardNumber { get; set; }
    [DataMember]
    public DateTime ExpirationDate { get; set; }
    /// <summary>
    /// If true, then the CardNumber property will contain the token
    /// </summary>
    [DataMember]
    public bool IsCardNumberTokenized { get; set; }
    /// <summary>
    /// Number on back of credit cards. This value CANNOT be stored anywhere
    /// </summary>
    [DataMember]
    public string CardSecurityValue { get; set; }
    [DataMember]
    public CardSecurityPresence CardSecurityPresence { get; set; }
}
序列化不喜欢我的变量名与它们的类具有相同的名称吗

以下是来自WCFTest客户端的错误:

接收对的HTTP响应时出错 [服务url省略]。这 可能是由于服务端点绑定未使用HTTP 协议这也可能是由于HTTP请求上下文被删除 服务器中止(可能是由于服务关闭)。看见 服务器日志了解更多详细信息

服务器堆栈跟踪:在 System.ServiceModel.Channel.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException、HttpWebRequest请求、HttpBortreason abortReason)
在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan 超时)在 System.ServiceModel.Channels.RequestChannel.Request(消息, 时间跨度(超时)在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息 消息,TimeSpan超时)位于 System.ServiceModel.Channel.ServiceChannel.Call(字符串操作, 布尔单向,ProxyOperationRuntime操作,对象[]ins, 对象[]输出,TimeSpan超时)位于 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 方法调用,ProxyOperationRuntime操作)在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage (信息)

在[0]处重试异常:在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& ICreditCardService.TestAuth()中的 CreditCardServiceClient.TestAuth()

内部异常:基础连接已关闭:出现意外错误 接收时发生错误。在 System.Net.HttpWebRequest.GetResponse()位于 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan 超时)

内部异常:无法从传输连接读取数据:一个 远程主机已强制关闭现有连接。在 System.Net.Sockets.NetworkStream.Read(字节[]缓冲区,Int32偏移量, System.Net.PooledStream.Read(字节[]缓冲区,Int32 偏移量,Int32大小)在 System.Net.Connection.SyncRead(HttpWebRequest请求,布尔值 userRetrievedStream,布尔probeRead)

内部异常:已存在的连接被 远程主机位于System.Net.Sockets.Socket.Receive(字节[]缓冲区, Int32偏移量、Int32大小、SocketFlags(SocketFlags)位于 System.Net.Sockets.NetworkStream.Read(字节[]缓冲区,Int32偏移量, Int32大小)


CardSecurityPresenceEnum
中,我有一个名为
NotSent
的枚举成员,该成员未初始化为值。由于某种原因,这会挂断连接。

CardSecurityPresenceEnum
中,我有一个名为
NotSent
的枚举成员,该成员未初始化为值。由于某种原因,它挂断了连接。

它似乎来自CardSecurityPresenceEnum。当我评论这一点时,它是有效的。为什么那个枚举给了我问题?显然我必须设置NotSent到某个位置。它似乎来自CardSecurityPresenceEnum。当我评论这一点时,它是有效的。为什么枚举给了我问题?显然我必须设置NotSent。
[DataContract(Name = "CardSecurityPresenceEnum")]
public enum CardSecurityPresence
{
    [EnumMember(Value = "1")]
    IsPresent = 1,
    [EnumMember(Value = "2")]
    Illegible = 2,
    [EnumMember(Value = "9")]
    NoCodeOnCard = 9,
    [EnumMember(Value = " ")]
    NotSent
}

[DataContract(Name = "PaymentTypeEnum")]
public enum PaymentType
{
    [EnumMember]
    Visa = CMPWSApiService.TransactionMop.VI,
    [EnumMember]
    MasterCard = CMPWSApiService.TransactionMop.MC,
    [EnumMember]
    AmericanExpress = CMPWSApiService.TransactionMop.AX,
    [EnumMember]
    Discover = CMPWSApiService.TransactionMop.DI,
    [EnumMember]
    PayPal = CMPWSApiService.TransactionMop.PP,
    [EnumMember]
    BillMeLater = CMPWSApiService.TransactionMop.BL
}