Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
C# 在服务契约中使用接口代替WCF中的具体类型_C#_Jquery_Ajax_Wcf_Json - Fatal编程技术网

C# 在服务契约中使用接口代替WCF中的具体类型

C# 在服务契约中使用接口代替WCF中的具体类型,c#,jquery,ajax,wcf,json,C#,Jquery,Ajax,Wcf,Json,我有一个WCF服务操作,它接受接口作为输入类型。在从jQueryAjax调用此服务操作时,我收到一条消息“由于内部错误,服务器无法处理请求”。如果输入类型是concrete类,jQuery代码将在文件中工作。请告诉我是否有任何方法可以实现这种实施 [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allo

我有一个WCF服务操作,它接受接口作为输入类型。在从jQueryAjax调用此服务操作时,我收到一条消息“由于内部错误,服务器无法处理请求”。如果输入类型是concrete类,jQuery代码将在文件中工作。请告诉我是否有任何方法可以实现这种实施

[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发送类型信息呢?