Может кто-нибудь сказать мне, почему это не работает.Я создал службу WCF, которая возвращает список клиентов из базы данных Northwind.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Activation;
namespace WCFSilverlight.Web
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Customers" in code, svc and config file together.
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Customers : ICustomers
{
IEnumerable<Customer> ICustomers.GetAllCustomers()
{
NorthwindEntities objNorthwindEntities = new NorthwindEntities();
var query = from cust in objNorthwindEntities.Customers
select cust;
return query.ToList();
}
}
}
И это мой фрагмент кода App.xaml.cs: -
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
CustomersClient objCustomersClient = new CustomersClient();
objCustomersClient.GetAllCustomersCompleted += new EventHandler<GetAllCustomersCompletedEventArgs>(client_GetNameCompleted);
objCustomersClient.GetAllCustomersAsync();
}
void client_GetNameCompleted(object sender, GetAllCustomersCompletedEventArgs e)
{
MessageBox.Show(e.Result.ToString());
}
Если яне ошибочно, методы в Silverlight вызываются асинхронно.Поэтому я добавил обработчик событий для его обработки, а затем вызвал метод для извлечения клиентов.Но я ничего не получаю в Messagebox.Кроме того, когда я пытаюсь сохранить точку останова на client_GetNameCompleted
, она никогда не выполняется.Но если я оставлю это в Application_Startup
, оно выполнится.В чем может быть проблема?
Также объясните мне, правильно ли я делаю?Я видел один пример, где один человек напрямую определяет функцию, используя некоторые странные символы, такие как =>
.
РЕДАКТИРОВАТЬ 1: - Пожалуйста, объясните мне, что такое e.UserState в e.Что он содержит и что я могу с ним сделать?
РЕДАКТИРОВАТЬ 2: - : - Я получаю эту ошибку http://img178.imageshack.us/img178/9070/53923202.jpg
Служба WCF работает отличноЯ проверил запрос ссылки.Таким образом, нет проблем с подключением к Sql Server или WCF.Что-то не так только с моим клиентом.
Это мой ServiceReference.ClientConfig: -
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICustomers" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:50622/Customers.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ICustomers" contract="CustomerServ.ICustomers"
name="BasicHttpBinding_ICustomers" />
</client>
</system.serviceModel>
</configuration>
Теперь вы можете сказать мне, что не так?
Заранее спасибо:)
Обновление: - Я читал в Google, вам нужно установить режим сериализации однонаправленным.Но где мне это установить?Что мне написать где?