C# 具有长json字符串参数的Wcf post方法
我是WCF的新手。 我的问题是如何传递一个长JSON(这里我将数据表转换为JSON字符串)字符串作为WCF方法的参数 这是我的密码:C# 具有长json字符串参数的Wcf post方法,c#,C#,我是WCF的新手。 我的问题是如何传递一个长JSON(这里我将数据表转换为JSON字符串)字符串作为WCF方法的参数 这是我的密码: [OperationContract] [WebInvoke(Method = "GET",ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "initiateConnection/{jsonData}/{ses
[OperationContract] [WebInvoke(Method = "GET",ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "initiateConnection/{jsonData}/{sessionId}")]
void testMethod(string jsonData, string sessionId);
public void testMethod(string jsonData, String sessionId) { }
当我使用非常长的jsonData
字符串调用testMethod
时,它会显示
无效的URI:URI字符串太长
那么在这种情况下,我应该使用POST方法传递JSON结果吗?如果是,那么如何传递它?WCF绑定有一个名为maxReceivedMessageSize的属性,默认值相当小。您需要将其增加到足以处理JSON字符串的大小 您还可以将WCF配置为在客户端和服务器端输出一些跟踪信息,这将有助于您确定请求中出现了什么问题,因为由于内部异常处理程序中引发了新异常,WCF容易隐藏实际异常消息
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "SdrConfigExample.e2e" />
</listeners>
</source>
</sources>
</system.diagnostics>
< /代码> 如果非常长超过2000个字符,请考虑此信息:
您可以将json数据打包到内容中(URI本身是HTTP头的一部分)。但您应该改为HTTP方法POST或PUT。如果您提到POST方法,我想您在WCF中没有使用SOAP,对吗?如果您需要休息,您是否考虑过使用WebApi?@amarb:您可以在您的问题中添加这些信息。