我正在使用 asp.net 3.5。我已经开发了 WCF 服务。我尝试调用 WCF 服务表单 JQUERY,但我收到错误消息
服务调用失败:400 错误请求
我的代码如下:-
服务:-
[ServiceContract]
public interface IService
{
[OperationContract]
//[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
[WebInvoke(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
CommandStatus getCommandStatus(string Id, string UnitNumber, string UnitType);
}
服务 :-
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class Service : IService
{
public CommandStatus getCommandStatus(string Id, string UnitNumber, string UnitType)
{
CommandStatus objCommandStatus = new CommandStatus();
CommandsBLL objCommandsBLL = new CommandsBLL();
DataSet ds = new DataSet();
ds = objCommandsBLL.getCommandStatus(Convert.ToInt32(Id), UnitNumber, Convert.ToInt32(UnitType));
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
objCommandStatus.ID = Convert.ToString(ds.Tables[0].Rows[0]["IOMH_ID"]);
objCommandStatus.UnitType = Convert.ToString(ds.Tables[0].Rows[0]["IOMH_UnitType"]);
}
return objCommandStatus;
}
}
Web.Config 文件是
<system.serviceModel>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Service">
<endpoint address="" binding="wsHttpBinding" contract="IService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="AjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
最后我的 Jquery 调用是
var ID = 10;
var UnitNumber = '10001';
var UnitType = 1;
function CallService() {
var input =
{
ID: "10",
UnitNumber: "10001",
UnitType: "1"
};
//alert(JSON.stringify(input));
$.ajax({
async: true,
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://localhost:2878/Mtel_Profiler/Service.svc/getCommandStatus",
data: JSON.stringify(input),
success: function (userViewModel) {
var user = userViewModel;
alert(user);
},
error: function(msg) {
ServiceFailed(msg);
}
});
}
function ServiceSucceeded(msg)
{
alert('Sucess');
return false;
}
function ServiceFailed(result)
{
alert('Service call failed: ' + result.status + '' + result.statusText);
return false;
}
任何人都可以帮助解决此错误。提前致谢。