Silverlight4 вызывает веб-сервис ASMX - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть решение Visual Studio с проектом Silverlight и веб-проект, в котором размещается приложение Silverlight.Веб-проект также содержит веб-сервис ASMX, который вызывается приложением Silverlight ap.

. Как описано ниже, некоторые вызовы веб-службы работают нормально, а другие вызывают выброс CommunicationException, заключая в себе WebException -оба с сообщением «Сервер вернул следующую ошибку:« не найден »».

Во-первых, вот мой оригинальный метод, который не удался, как описано выше (имена сущностей изменены для простоты):

[WebMethod]
public Customer GetCustomer(int id)
{
    CustomerDataContext dc = new CustomerDataContext();
    return dc.Customers.SingleOrDefault(x => x.Id == id);
}

Во-вторых, для устранения проблемы я взял Linq to SQL и базу данных из картинки, и код ниже работал нормально:

    [WebMethod]
public Customer GetCustomer(int id)
{
    Customer c = new Customer() { ID=1, Name="Bob", History = new EntitySet<CustomerHistory>() };
    return c;
}

В-третьих, подумав об этом, одно различие между двумя методамиявляется то, что первый будет включать значения в истории клиента.Я расширил второй метод, чтобы включить это, и он снова начал давать сбой:

    [WebMethod]
public Customer GetCustomer(int id)
{
    Customer c = new Customer() { ID=1, Name="Bob", History = new EntitySet<CustomerHistory>() };
    c.History.Add(new CustomerHistory() { Id=1, CustomerId=1, Text="bla" });
    return c;
}

Я застрял в отношении того, как развиваться - мое текущее мнение состоит в том, что это может быть проблемой десериализации на стороне Silverlight, когда граф объектов глубже.Это рационально не имеет смысла, но я не могу думать ни о чем другом.Я подтвердил, что размер передаваемого файла и размер буфера достаточно велики (по умолчанию 2 ГБ).

Любые указатели приветствуются.

1 Ответ

0 голосов
/ 15 декабря 2010

Аххххх, знаменитая ошибка "Not Found", попробуйте получить подробности об этой ошибке, используя тег в вашем файле web.configЭто создаст файл журнала с подробной информацией об ошибке.

Следующая ссылка объясняет, как это сделать:

http://blogs.runatserver.com/lppinson/post/2010/04/15/Debugging-WCF-Web-Services.aspx

...