gpt4 book ai didi

c# - 如何从 ajax 调用 WCF 服务?

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:37 25 4
gpt4 key购买 nike

我有一个 WCF 服务,如下所示 -

 [ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Sync
{
[OperationContract]
[WebInvoke]
public string SyncDataNow(UserData obj)
{
try
{
using (MavenifyEntities db = new MavenifyEntities())
{
bool userExist = db.Users.Any(u => u.Id == obj.UserId);
if (userExist)
{
DataSync data = new DataSync();
data.UserId = obj.UserId;
data.TempId = obj.TempId;
data.Content = obj.Content;
data.CreatedDate = DateTime.Now.ToString();
db.DataSyncs.Add(data);
db.SaveChanges();
return "1";
}
else
{
return "0";
}
}
}
catch (Exception ex)
{
return "error";
}
}
}

[DataContract(Namespace = "")]
public class UserData
{
[DataMember]
public int UserId { get; set; }
[DataMember]
public string Content { get; set; }
[DataMember]
public string TempId { get; set; }
}

当我从 POSTMAN 调用此服务时,它收到空数据,请帮助我找出我在做什么错。

我正在以 json 格式发送原始数据,例如-

{"UserData":{"UserId":"1","TempId":"asdbsjiadf","Content":"Hello"}}.

我的 web.config 条目是-

 <system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="PhoneSync.SyncAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="PhoneSync.Sync">
<endpoint address="" behaviorConfiguration="PhoneSync.SyncAspNetAjaxBehavior" binding="webHttpBinding" contract="PhoneSync.Sync" />
</service>
</services>

最佳答案

确保请求/响应默认为 Json。我会在 [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]

中明确指定

配置一些选项也许有意义 like suggested here

关于c# - 如何从 ajax 调用 WCF 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33257183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com