【发布时间】:2011-09-21 19:58:29
【问题描述】:
下面的接口定义了我的 WCF 服务。有时,当调用它时,'parameters' 参数为空。其他时候不是。
[ServiceContract]
public interface IContactRelationshipManager
{
[OperationContract]
[WebInvoke(
Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
void SaveActivityLogEntry(SaveActivityLogEntryParameters parameters);
}
这是我在 app.config 中的行为部分(我将其作为 Windows 服务运行)
<behaviors>
<endpointBehaviors>
<behavior name="jsonBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ContactRelationshipManagerBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
这是我的 javascript 调用:
$.ajax(
{
type: "POST",
cache: false,
contentType: "application/json",
url: serviceCallUrl,
data: JSON.stringify(params),
success: callbackHandler
});
JSON.stringify(params)的结果是
"{"parameters":{"ContactEmailAddress":"blah@gmail.com","LiasonsForContact":[25],"ActivityLogEntry":{"Date":"/Date(1316634966273)/","LiasonFK ":25,"TypeFK":1,"MethodFK":3,"Description":"tt","ContactFK":32}}}"
在实践中我做错了什么吗?这在 chrome 和 firefox 中一直运行良好。我也刚刚在调试服务时使用 Fiddler 进行了测试,当 Fiddler 关闭时参数返回 null,而 Fiddler 打开时参数返回 null。
【问题讨论】:
标签: c# wcf json internet-explorer ntlm