Каков наилучший способ в WebMatrix запрашивать службы WCF? - PullRequest
1 голос
/ 12 апреля 2011

У меня есть проект ASP.Net, использующий механизм представления Razor, который в настоящее время запрашивает различные базы данных напрямую с помощью WebMatrix.Data.Database.Open.

Я пытаюсь перенести весь прямой доступ к базе данных на веб-службы с использованием WCF, чтобы получить согласованную бизнес-логику. При этом я также включил службу WCF «httpGetEnabled». Это позволяет мне использовать макросы Excel для запроса к одному и тому же веб-сервису.

У меня вопрос: как лучше всего запросить эти веб-сервисы со страницы Razor / WebMatrix?

Должен ли я JSON включить службу WCF и использовать помощник WebMatrix JSON? Или я должен использовать JQuery для получения xml?

Я бы предположил, что первый вариант будет лучшим, но как мне JSON включить мою службу WCF? Я помню, как смотрел видео, которое позволило мне указать дополнительный параметр запроса к запросу WCF для получения JSON, но я не могу найти его снова.

Любые мысли или указатели в правильном направлении будут с благодарностью.

С уважением.


Edit:

Я недавно видел это в переполнении стека: Связывание на стороне клиента с использованием преобразования служб WCF в JSON

После этого я перешел к статье MSDN, на которую ссылается WebHttpBehavior. С тех пор я добавил «automaticFormatSelectionEnabled = true» к элементу webHttp в Web.config. Кроме того, я добавил следующий код, который затем позволил мне указать «format = json» в качестве параметра запроса:

string formatQueryStringValue = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["format"];
if (!string.IsNullOrEmpty(formatQueryStringValue))
{
    if (formatQueryStringValue.Equals("xml", System.StringComparison.OrdinalIgnoreCase))
    {
        WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Xml;
    }
    else if (formatQueryStringValue.Equals("json", System.StringComparison.OrdinalIgnoreCase))
    {
        WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json;
    }
}

Теперь мне просто нужно разобраться, как использовать помощник WebMatrix JSON для получения результатов ... Будет обновляться, когда я получу дополнительную информацию.


Редактировать 2

Хм, я не думаю, что это помогло ... Теперь я могу получить JSON от веб-службы, но веб-помощник JSON, похоже, поможет, только если у вас уже есть некоторые данные JSON. Я просто не уверен, как получить те данные JSON, которые я могу затем использовать JSON Helper для преобразования (декодирования) в класс.

Итак, я думаю, что мой вопрос сейчас заключается в том, как получить данные JSON и затем соединить их с WebMatrix / Razor для использования в WebGrid?

1 Ответ

0 голосов
/ 12 апреля 2011

Из всего, что я прочитал, вы захотите узнать, что является наилучшей практикой в ​​этом случае, если я прав.

Насколько я знаю, лучшая практика - вообще не запрашивать ваш сайт через wcf.

почему?-Потому что они оба расположены на вашем сервере ... нет смысла снова создавать соединение, чтобы просто получать данные.Они оба должны иметь прямое соединение с данными, которые для вас являются webmatrix .... Вы должны использовать WCF для других приложений, таких как .exe, который вы создали, для хранения сельскохозяйственных животных.

Дополнительное примечание: вы можете добавить WCFк вашему проекту ASP.NEt и оба имеют доступ к одной и той же базе данных, что было бы лучше всего, если вам все еще это требуется.

...