У меня есть WCF RESTful-сервис и Android-клиент.
Сервер отвечает 400, когда я делаю больший запрос. Кажется, у меня есть 65k лимит вопроса, как
в здесь или в других миллионах сообщений по той же проблеме.
Однако я не могу исправить это. Вот как выглядит мой web.config
<system.serviceModel>
<diagnostics>
<messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="myEndpoint" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="1000000" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Вот пример кода сервисной функции:
[WebInvoke(UriTemplate = "/trips/{TripId}/inspection", Method = "POST")]
[Description("Used on mobile devices to submit inspections to server")]
public void PostTripInspection(string tripId, Inspection inspection)
{
return;
}
Вот код внутри моего веб-проекта, в котором размещается WCF (Global.asax.cs)
private static void RegisterRoutes()
{
// Setup URL's for each customer
using (var cmc = new CoreModelContext())
{
foreach (var account in cmc.Accounts.Where(aa => aa.IsActive).ToList())
{
RouteTable.Routes.Add(
new ServiceRoute(
account.AccountId + "/mobile", new WebServiceHostFactory(), typeof(MobileService)));
}
}
}
Из того, что я понимаю, Java HttpClient не накладывает никаких ограничений, поэтому он на стороне WCF. Любые указатели о том, как решить эту проблему или как перехватить сообщение в WCF?
РЕДАКТИРОВАТЬ 2:
Это то, что показывает трассировка. И когда я изменяю стандартEndpoint, это не помогает ...