Служба WCF с поддержкой Ajax не отвечает данными - PullRequest
2 голосов
/ 22 сентября 2010

У меня есть очень простая служба WCF с поддержкой Ajax, которая должна возвращать один объект типа EntityObject, сериализованный в JSON.

Вот мой файл .svc:

[ServiceContract(Namespace = "FASServices")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class FASService
{
    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Json)]
    public FrameAttributes GetFrameAttributes(long frameID)
    {
        var data = FrameAttributeAccessor.GetFrameAttributes(frameID);

        WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json;

        return data;
    }
}

Я использовалэта служба на странице ASP.Net через ссылку на службу в ScriptManager и имеет доступ к прокси службы, сгенерированному в результате.

Вот мой web.config:

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

При вызовеСлужба Я вижу, как XHR покидает мой браузер (через FireBug), а также вижу, что сервер разработки ASP.Net получает HTTP-запрос и впоследствии вызывает службу, которая выполняет простой поиск с использованием переданного бизнес-ключа через уровень доступа к данным (яиметь точку останова в приведенном выше операторе возврата и может проверять возвращаемую сущность).

Однако, как только элемент управления покидает мой сервисный код и возвращает его, мой браузер никогда не отправляет ответ, и впоследствии сериализованные данные JSON никогда не получаются, нет даже заголовков ответа для проверки.

Кто-нибудь знает, почему это мМожет быть, дело?Кто-нибудь может предложить какие-либо методы отладки стека WCF для отслеживания сквозного сообщения?

Заранее спасибо.

1 Ответ

2 голосов
/ 22 сентября 2010

Как отслеживать проблемы / исключения сериализации WCF , т. Е. Необходимо включить диагностическую трассировку WCF.

...