Веб-сервис WCF: ответ 200 / нормально, но тело ответа пустое - PullRequest
5 голосов
/ 31 октября 2011

Я создаю веб-сервис WCF API. Моя проблема в том, что некоторые методы возвращают ответ 200 / OK, но заголовки и тело пустые.

При настройке веб-службы я создал модель данных сущности ADO.NET. Я выбрал ADO.NET DbContext Generator, когда добавил элемент генерации кода. В документе Model.tt я изменил HashSet и ICollection на List. Я создал свой сайт.

Раньше было так, что когда я кодировал метод для возвращения списка сущностей (например, List<Customer> или List<Employee> в базе данных Northwind), он работал нормально. Со временем я не смог вернуть Список ни одного из них, и мог получить только одну сущность. Теперь дошло до того, что я могу вернуть List<string> или List<int>, но не List или экземпляр какой-либо сущности. Когда я пытаюсь получить List<AnyEntity>, ответ 200 / OK, но заголовки и тело ответа пусты.

Я попытался использовать отладчик и веб-консоль Firefox. Используя WC от FF, я мог получить только «неопределенный» код состояния. Я не уверен, куда идти отсюда.

РЕДАКТИРОВАТЬ: пытаясь извлечь все области из базы данных, я делаю это:

[WebGet(UriTemplate = "areas")]
public List<a1Areas> AllAreas()
{
    return context.a1Areas.ToList();
}

Буду признателен за любые другие способы отладки этого. Заранее спасибо.

Нашел ответ, спасибо Мерлин!

В моем файле Global.asax я забыл закомментировать две строки, которые заботились о прокси и избавились от моего объекта контекста. Код ниже:

void Application_BeginRequest(object sender, EventArgs e)
{
  var context = new AssignmentEntities();
  context.Configuration.ProxyCreationEnabled = false;
  HttpContext.Current.Items["_context"] = context;
}

void Application_EndRequest(object sender, EventArgs e)
{
  var context = HttpContext.Current.Items["_context"] as AssignmentEntities;
  if (context != null)
  {
    context.Dispose();
  }
}

1 Ответ

0 голосов
/ 12 ноября 2011

Кто-то изменил имя хоста, выполнив следующие указания:

http://blogs.msdn.com/b/wenlong/archive/2007/08/02/how-to-change-hostname-in-wsdl-of-an-iis-hosted-service.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...