WCF捕获异常“;服务器没有提供有意义的答复……”;
在服务器调用之后,我的客户端捕获到一个异常,并显示以下消息 服务器没有提供有意义的答复;这可能是由于协定不匹配、会话过早关闭或内部服务器错误造成的 另外,请注意,我在中尝试了配置 但还是不起作用 请注意,我将服务调试到底,数据已成功填充,但在客户端,当数据应该显示时,它会崩溃,出现上述异常WCF捕获异常“;服务器没有提供有意义的答复……”;,wcf,Wcf,在服务器调用之后,我的客户端捕获到一个异常,并显示以下消息 服务器没有提供有意义的答复;这可能是由于协定不匹配、会话过早关闭或内部服务器错误造成的 另外,请注意,我在中尝试了配置 但还是不起作用 请注意,我将服务调试到底,数据已成功填充,但在客户端,当数据应该显示时,它会崩溃,出现上述异常 感谢您的帮助。我找出了这背后的原因,即错误地为枚举类型生成了代理,它是作为字符串生成的,因此它失败了,并向我指出了该异常如果其他人遇到了相同的异常,并且在服务器中进行了相同的调试行为,但是在返回到客户端时出现
感谢您的帮助。我找出了这背后的原因,即错误地为枚举类型生成了代理,它是作为字符串生成的,因此它失败了,并向我指出了该异常如果其他人遇到了相同的异常,并且在服务器中进行了相同的调试行为,但是在返回到客户端时出现异常,另一个可能的原因是返回数据协定中的未初始化枚举,其中枚举具有显式值,但没有显式零值
[ServiceContract]
public interfact IMyService
{
[OperationContract]
MyResult DoSomething();
}
[DataContract]
public class MyResult
{
[DataMember]
public OperationStatus Status {get; set;}
[DataMember]
public string ErrorText {get; set;}
}
[DataContract]
public enum Operation Status
{
[EnumMember]
Success = 1,
[EnumMember]
Failure = 2
}
public class MyService : IMyService
{
public MyResult DoSomething()
{
var result = new MyResult();
// ... do work, but don't set any properties on result ...
return result;
}
}
[DataContract]
public enum Operation Status
{
[EnumMember]
Unknown = 0,
[EnumMember]
Success = 1,
[EnumMember]
Failure = 2
}
此场景中发生错误的原因是result.Status默认为零,但数据协定不提供任何序列化方法,因为它不是显式定义的枚举值之一
解决方案(假设您确实需要这个带有显式整数值的枚举)是在返回对象中设置枚举值,或者提供默认(零)值
--Bill如果您的web服务返回一个DataTable,它必须有TableName;
查看对于我来说,此错误的原因是服务器功能界面(标有OperationContract属性的界面)上缺少一个FaultContractAttribute(类型(FaultModel)) 当在服务器端抛出故障异常
希望能帮助他人。在尝试调用Windows工作流服务后,我在新系统(Windows 10)上遇到了这种情况。其他WCF服务调用正在工作,但尝试调用工作流活动(xamlx WF4服务)时收到此错误 试图浏览到
服务.xamlx
文件时,出现了一个空白屏幕。这最终让我找到了另一个答案(IIS8特定的答案),即在IIS服务下添加HTTP激活功能:
您需要提供更多关于服务合同和配置文件的信息,以获得有意义的帮助。此消息通常表示服务未能在服务配置中设置的默认或自定义超时限制内响应。您的回答提示我检查我的枚举,查看是否有未分配给零的枚举。果然,其中一个只有1和2的值。分配了一个名为Unknown的成员并将其设置为零,解决了我的问题。非常感谢