C# 在服务契约中使用接口代替WCF中的具体类型
我有一个WCF服务操作,它接受接口作为输入类型。在从jQueryAjax调用此服务操作时,我收到一条消息“由于内部错误,服务器无法处理请求”。如果输入类型是concrete类,jQuery代码将在文件中工作。请告诉我是否有任何方法可以实现这种实施C# 在服务契约中使用接口代替WCF中的具体类型,c#,jquery,ajax,wcf,json,C#,Jquery,Ajax,Wcf,Json,我有一个WCF服务操作,它接受接口作为输入类型。在从jQueryAjax调用此服务操作时,我收到一条消息“由于内部错误,服务器无法处理请求”。如果输入类型是concrete类,jQuery代码将在文件中工作。请告诉我是否有任何方法可以实现这种实施 [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allo
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TestService
{
[OperationContract]
[ServiceKnownType(typeof(User))]
public void SetUser(IUser request)
{
}
}
这在WCF中是可能的,所以问题是什么是真正的异常消息。当您使用jQuery调用服务时,是否正在调试应用程序 要在实际异常中获取更多信息,应使用svcTraceViewer。如果您以前没有使用过svcTraceViewer,那么您可能希望查看我博客上的一篇博文
在调用转到服务器之前出现异常,因为它无法解析输入类型。因此svcTraceView不显示任何详细信息。服务器正试图解析方法参数,因此您应该在svcTraceViewer中看到错误(前提是您正确设置了跟踪)。这是一个服务器端错误。只是WCF没有向客户端发送真正的异常消息。不管是哪种方式,在不知道实际异常的情况下,这将是一个命中和错误的事情。我在svcTraceViewer中得到“无法将'System.object'类型的对象强制转换为'ProcessFlowController.IUser'”类型的消息。你看到了。现在您知道了错误是什么,这样您就可以解决它了。但是在进行ajax调用时,如何从javascript发送类型信息呢?