Самый простой способ предоставить сервис JSON в ASP.NET / DotNetNuke - PullRequest
2 голосов
/ 13 января 2012

Мне нужно создать службу поддержки для элемента управления jQuery в поле ввода токена .

Наше приложение состоит из элементов управления для (стороннего) модуля DotNetNuke под названием SimpleWrapper. Этот модуль работает так, что он обеспечивает легкий, но не очень гибкий способ отображения обычных пользовательских элементов управления ASP.NET на странице DNN. Предостережение заключается в том, что это .ascx элементы управления, а не .aspx страницы.

Я в основном в недоумении, какие из технологий доступны для использования. Я посмотрел на сервисы ASMX, но в основном они созданы для создания сгенерированного прокси-кода JavaScript. Мне нужно уметь:

  • смонтировать сервис по статическому URL
  • может принимать один строковый параметр
  • позволяет производить JSON в определенном, но очень простом формате

Мне действительно не нужна сильная интеграция с ASP.NET, например, возможность отвечать на обратную передачу или что-то подобное. Я бы также предпочел что-то, что можно развернуть, просто добавив файл, без необходимости редактировать файлы конфигурации. Что может быть простым способом выплюнуть кусок JSON в такой среде?

Ответы [ 3 ]

2 голосов
/ 13 января 2012

WCF (я думаю, начиная с версии 3.51) имеет приятную функцию «нулевой конфигурации», которая легко интегрируется с IIS. Все, что вам нужно сделать, это

  • создать интерфейс и сервис с поддержкой JSON
  • создайте простой файл .SVC на сайте IIS.

Вам не нужно связываться с прикольными .config файлами: -)

Пример .SVC файла:

<%@ ServiceHost
 Service="MyNamespace.MyService"
 Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>

Пример реализации интерфейса и службы, примерно так:

public class MyService : IMyService
{
        public string Test(string text)
        {
            return text; // whatever
        }

}

[ServiceContractAttribute(Namespace="http://schemas.myservice.com")]
public interface IMyService
{
    [OperationContractAttribute]
    [WebInvokeAttribute(UriTemplate="Test", // change this accordingly
     ResponseFormat=WebMessageFormat.Json, // change this accordingly
     RequestFormat=WebMessageFormat.Json, // change this accordingly
     BodyStyle=Wrapped)]
    string Test(string text);
}

Вот еще одна классная ссылка на все это: Веб-сервисы WCF The Easy Way .

1 голос
/ 13 января 2012

Я не понимаю, почему веб-службы WCF или ASMX веб-службы не подходят для того, что, как вы говорите, вам нужно. Лично я бы пошел по этому пути (выбирая WCF вместо ASMX).

Я посмотрел ссылку, опубликованную DJ KRAZE, и в ней используется HTTP-обработчик, плюс используется сторонний сериализатор Javascript (одна дополнительная зависимость, которая на самом деле не нужна, поскольку у вас есть JavascriptSerializer, если необходимо).

1 голос
/ 13 января 2012

JSON, предоставляемый через службу покоя Эта ссылка поможет вам шаг за шагом понять, как сделать то, что вы ищете, имеет пример кода

...