C# 从winform/ASP.net jquery ajax调用WCF服务
嘿,我有以下代码,它通过jQuery AJAX调用将json字符串发送到我的asp.net代码,并将其放入它们的类名中 JavaScript Ajax: ASP.net代码隐藏: WCF代码: AJAX的代码:C# 从winform/ASP.net jquery ajax调用WCF服务,c#,ajax,asp.net-mvc,wcf,nettcpbinding,C#,Ajax,Asp.net Mvc,Wcf,Nettcpbinding,嘿,我有以下代码,它通过jQuery AJAX调用将json字符串发送到我的asp.net代码,并将其放入它们的类名中 JavaScript Ajax: ASP.net代码隐藏: WCF代码: AJAX的代码: $("#WCF").on("click", function () { var scannerSettings = { "FileType": "TEST1", "FileName": "C:\Program Files (x86)\some
$("#WCF").on("click", function () {
var scannerSettings = {
"FileType": "TEST1",
"FileName": "C:\Program Files (x86)\somethibg\Sample\ScanTest\VCS 2008\bin\Debug\image#####",//$('').text(),
"JpegQuality": "TEST2",
"ScanContinue": false,
"Resolution": "TEST3",
"Rotation": "TEST4",
"PaperSupply": "TEST5",
"PaperSize": "TEST6",
"Orientation": "TEST7",
"CustomPaperWidth": 8.268,
"CustomPaperLength": 11.693,
"JobControl": "TEST8",
"PunchHoleRemoval": "TEST9"
};
$.ajax({
type : "POST",
contentType : "application/json",
dataType : "json",
url : ajaxDirPath + "WCF",
data : JSON.stringify({ "obj": scannerSettings }),
cache : false,
success : ServiceSucceeded,
error : ServiceFailed
});
});
ASP.net代码隐藏代码(HomeController.cs):
}
从上面的图像中可以看到,它从AJAX->HomeController.cs发送数据,但一旦我再次将数据发送到WCF服务器,如AJAX->HomeController.cs->WCF,它就不再具有所需的值-它们都是null
json类:
[DataContract]
public class scannerSettings
{
[DataMember]
public string FileType { get; set; }
[DataMember]
public string FileName { get; set; }
[DataMember]
public string JpegQuality { get; set; }
[DataMember]
public bool ScanContinue { get; set; }
[DataMember]
public string Resolution { get; set; }
[DataMember]
public string Rotation { get; set; }
[DataMember]
public string PaperSupply { get; set; }
[DataMember]
public string PaperSize { get; set; }
[DataMember]
public string Orientation { get; set; }
[DataMember]
public string CustomPaperWidth { get; set; }
[DataMember]
public string CustomPaperLength { get; set; }
[DataMember]
public string JobControl { get; set; }
[DataMember]
public string PunchHoleRemoval { get; set; }
}
我正在使用NetTcpBinding通过以下地址本地连接WCF服务:
净。tcp://localhost:2202/theService/tech6140
有人知道这是为什么以及如何修复吗?如果服务器和客户端上的类名称空间不同,WCF服务可能无法将请求对象识别为
scannerSettings
。我几个星期前犯了这个错误
在服务器上,我有请求对象
Acme.Service.RequestObject
当我生成服务代理时,它包含了请求对象。出于美观原因,我将客户端上的名称空间更改为
SomeCoolNamespace.Service.RequestObject
调用服务时,服务将收到一个请求对象,该对象的命名空间与预期的命名空间不匹配,并且参数将为null。当要传输的对象的命名空间在服务器和客户端之间不同时,我曾经遇到过此问题,因此,完全限定类型名称不匹配,WCF服务无法识别它。@DanWilson您能举一个例子说明您在说什么吗?服务器将
scannerSettings
视为Org.code.scannerSettings
,而客户端将其视为ServiceProxy.scannerSettings
。我假设客户端使用scannerSettings
作为生成的代理类的一部分。@DanWilson举个例子会更好。我不知道您从哪里获得Org.code.scannerSettings和ServiceProxy.scannerSettings?
Acme.Service.RequestObject
SomeCoolNamespace.Service.RequestObject