Я создал службу WCF в .NET 4.0, которая в основном просто выполняет стандартные CRUD для пары таблиц в базе данных MS SQL Server 2005.Я использую ADO .NET Entity Data класс для сопоставления с таблицами базы данных.Пока это было действительно просто.Я только что вытащил столы на поверхность конструктора и позволил инструменту сделать всю работу за меня.
Вот моя проблема.Один из методов службы выдает ошибку (Internet Explorer не может отобразить веб-страницу) при попытке получить из нее какие-либо данные.IE действует так, как будто он не может связаться с сервером, но сервер - это моя локальная машина, и он может фактически связаться с сервером, когда я перехожу к различным методам.Вот метод:
[WebGet(UriTemplate = "POS_AllowedValues")]
public List<POS_AllowedValues> GetAllowedValues()
{
using (DENTSPLYEntities dentsply = new DENTSPLYEntities())
{
var allowed = dentsply.POS_AllowedValues.ToList();
return allowed;
}
}
Если я полностью не в курсе, это должно возвращать список объектов POS_AllowedValues при попадании URL-адреса службы и добавлении "/ POS_AllowedValues" в конец.Когда вы смотрите на справочную страницу службы, это действительно то, что она указывает.
Теперь, что действительно убивает меня, так это то, что все другие методы работают нормально.Например, вот метод GetPOSAccountXref
[WebGet(UriTemplate = "POS_AccountXref")]
public List<POS_AccountXref> GetPOSAccountXref()
{
using (DENTSPLYEntities dentsply = new DENTSPLYEntities())
{
var posXref = dentsply.POS_AccountXref.ToList();
return posXref;
}
}
, который отлично работает!Единственное различие, которое я пока могу найти между этими двумя, состоит в том, что объект POS_AllowedValues содержит свойство навигации для одного из других объектов таблицы, тогда как объект POS_AccountXref - нет.
Я в основном следую засообщение в блоге, найденное на blogs.msdn.com под названием Начало работы с WCF WebHttp Services в .NET 4 .
Кроме того, я запускаю его на веб-сервере разработки в VS.Это полностью работает на моем компьютере разработчика, используя Windows 7 и VS 2010.
Я действительно понятия не имею, почему это не работает.Любая помощь будет принята с благодарностью.