Я создал службу WCF в .NET 4.0, которая в основном просто выполняет стандартный CRUD для пары таблиц в базе данных MS SQL Server 2005. Я использую класс данных ADO .NET Entity для сопоставления с таблицами базы данных. До сих пор это было очень просто. Я просто вытащил таблицы на поверхность конструктора и позволил инструменту сделать всю работу за меня.
Вот моя проблема. Один из методов службы выдает ошибку (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 в .NET 4.
Кроме того, я запускаю это на веб-сервере разработки в VS. Это полностью работает на моей машине разработки, используя Windows 7 и VS 2010.
Я действительно понятия не имею, почему это не работает. Любая помощь вообще будет принята с благодарностью.