Новое в веб-службах WCF - PullRequest
       24

Новое в веб-службах WCF

1 голос
/ 28 ноября 2009

Я новичок в WCF и хочу знать, возможно ли создать службу WCF в собственном приложении и разместить ее в IIS. Тогда другое приложение ASP.NET будет использовать его. Пока что все примеры, которые я видел, имеют службу WCF внутри одного решения ASP.NET. Если да, можете ли вы дать несколько советов о том, как это сделать? Я хочу создать простой пример, который извлекает фамилию человека на основе идентификатора и затем использует ее из отдельного приложения ASP.NET.

спасибо.

Ответы [ 3 ]

1 голос
/ 28 ноября 2009

Да, безусловно - ваш сервис WCF может находиться в сборке библиотеки классов, а его размещение в IIS - это арахис.

Другое приложение ASP.NET может затем вызывать его и использовать его службы. Нет проблем вообще.

Что касается ресурсов: есть MSDN WCF Developer Center , в котором есть все - от учебников для начинающих до статей и примеров кода.

Кроме того, я бы рекомендовал вам взглянуть на скриншоты Pluralsight на WCF - это отличная серия из " Создание вашего первого сервиса WCF " и " Создание вашего первого клиента WCF"вплоть до довольно сложных тем. Аарон Сконнард очень хорошо объясняет все за 10-15 минут скринкастов - очень рекомендуется!

1 голос
/ 28 ноября 2009

Да, вы можете сделать его "автономным" - в Visual Studio запустите приложение WCF - тогда это приложение будет размещено в IIS.

Ниже очень простой шаблон VS.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WcfService1
{
    // NOTE: If you change the class name "Service1" here, you must also update the reference to "Service1" in Web.config and in the associated .svc file.
    public class Service1 : IService1
    {
        public string GetLastName(int id)
        {
            //Do Data Access here
            string surname = "SomeSurname";
            return surname;
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }
}
0 голосов
/ 28 ноября 2009

Ответ - да (у koosk и marc_s есть хорошие ответы), однако причина в том, что примеры такие, какими они являются, заслуживает краткого комментария.

Если вы посмотрите на примеры, вы, вероятно, увидите (по крайней мере) два проекта, один для примера сервиса и один для примера приложения, которое его использует, теоретически вы можете разделить проекты на отдельные решения, запустить службу, а затем приложение-потребитель, и оно все еще будет работать (теоретически, потому что вам нужно получить правильные зависимости в обоих проектах).

Причина, по которой клиент и служба используются в одном и том же решении, заключается в том, что она позволяет Visual Studio умело помогать вам в отладке. Когда вы запускаете клиент, он автоматически запускает службу для вас, и тогда вы сможете при необходимости перейти от клиента к услуге.

Стоит помнить, что решение может содержать любое количество условно отличных приложений, а также библиотек и т. Д., Необходимых для поддержки этих приложений, это просто оболочка - приложение (в данном случае служба или клиент) - это просто еще один проект в решение.

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