2015-05-04 31 views
2

我是WCF新手。 我的问题是如何将长JSON(这里我将数据表转换为JSON字符串)字符串作为WCF方法的参数?Wcf post方法与长json字符串参数

这里是我的代码:

[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) { } 

当我打电话testMethodjsonData串很长,它显示

无效的URI:URI字符串太长

所以在这种情况下,我应该使用POST方法传递JSON结果吗?如果是,那么如何通过它?

+0

如果你提到的post方法,我想你没有在WCF中使用SOAP,对吧?如果您需要REST,请考虑使用WebApi? – Giedrius

+0

@amarb:您可以编辑您的问题以包含该信息。 –

回答

0

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>