2012-01-13 2 views
2

Мне нужно создать службу поддержки для jQuery token input field control.Самый простой способ открыть службу JSON в ASP.NET/DotNetNuke

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

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

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

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

ответ

2

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

  • создайте Aware интерфейса 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 Web Services The Easy Way.

+0

Похоже, он должен покрыть требования, спасибо. Еще одна вещь: можно ли получить доступ к параметрам строки запроса в реализации службы? – millimoose

+0

@Inerdial: Да, это возможно, если вы вызываете метод веб-службы в запросе GET, но вы также можете отправить запрос POST и изменить способ веб-службы для получения этих параметров. См. Здесь: http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/ – Icarus

+0

@Icarus Я думаю, что я застрял с GET, элемент управления входным сигналом использует только это, и я не знаю, я чувствую, как его модифицировать. Кажется, что параметр 'UriTemplate' - это то, что я ищу. – millimoose

1

JSON Exposed thru Restful Service Эта ссылка поможет вам шаг за шагом о том, как сделать то, что я считаю, что вы ищете имеет фактический образец кода

+0

Хм, я бы предпочел что-то, что не требует редактирования файлов конфигурации для развертывания, но это не showstopper. – millimoose

1

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

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

+0

ICaurus Я не совсем уверен, что он использует или не использует, поскольку он упомянул, что это не обычные страницы .aspx, потому что я не рекомендовал традиционный подход .net, т.е. WCF – MethodMan

+0

Они могут быть очень подходящими.Я довольно новичок в dotnetland, и я лишь смутно знаю, какие технологии доступны и что они могут сделать. – millimoose

Смежные вопросы