Как мне использовать сервис WCF с использованием MVC3 - PullRequest
0 голосов
/ 14 ноября 2011

Я пишу довольно простое приложение MVC3, которое позволяет пользователю получать и изменять некоторые данные конфигурации, хранящиеся в службе WCF.Данные конфигурации не будут меняться очень часто, но пользователь должен поддерживать их.Как только пользователь доволен конфигурацией, он запускает некоторую обработку из пользовательского интерфейса или по расписанию выполнения сценария VB.

Я довольно новичок в WCF и даже новее в MVC3, но я хотелсделать все сообщения на и от службы RESTful.Это хорошая вещь?

Я планировал выполнить служебную связь с контроллером MVC.Это приведет к получению HTTP-запроса Get для получения текущей конфигурации и HTTP Post для применения измененной конфигурации.Я бы также использовал запрос Get для запуска обработки.

Может ли кто-нибудь предоставить пример (или указать мне направление) того, как мне следует это делать?

Ответы [ 3 ]

1 голос
/ 15 ноября 2011

Если вы являетесь владельцем веб-службы, вы можете напрямую ссылаться на реализацию службы в своем проекте MVC и использовать ее без веб-ссылки. Вы можете написать примерно так:

// example of ws
public class Service1 : IService1
 {
        public string GetData( int value )
        {
            return string.Format( "You entered: {0}", value );
        }

        public CompositeType GetDataUsingDataContract( CompositeType composite )
        {
            if( composite == null )
            {
                throw new ArgumentNullException( "composite" );
            }
            if( composite.BoolValue )
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
 }

// example of mvc action
public class HomeController : Controller
 {
        public ActionResult Index()
        {
            IService1 service = new Service1();

            service.GetDataUsingDataContract(....)

            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }
 }
1 голос
/ 17 ноября 2011

Самый простой ответ, который я нашел, был здесь: , используя фабрику каналов.

Я до сих пор не знаю, является ли это лучшим способом, но он оставил мой код достаточно чистым. Ниже приведен образец от моего контроллера.

    public ActionResult Index()
    {
        SettingsModel config = null;

        // Set up a channel factory to use the webHTTPBinding
        using (WebChannelFactory<IChangeService> serviceChannel = 
            new WebChannelFactory<IChangeService>(new Uri(baseServiceUrl )))
        {
            IChangeService channel = serviceChannel.CreateChannel();
            config = channel.GetSysConfig();
        }

        ViewBag.Message = "Service Configuration";

        return View(config);
    }
1 голос
/ 15 ноября 2011

Пожалуйста, перейдите по ссылкам ниже для некоторого примера кода для создания службы RESTful WCF и того, как клиент будет обращаться к службе.

Ссылка для создания службы RESTful: здесь

Ссылка для создания .NET-клиента, который использует службу RESTful: здесь

Надеюсь, эта информация поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...