WCF Внешний доступ к службе
От: lutikman  
Дата: 25.11.10 11:22
Оценка:
Добрый день.
Создал простую службу WCF:

    [ServiceContract(Namespace = "http://TestWcfService", SessionMode = SessionMode.Required)]
    [ServiceBehaviorAttribute(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
    public class WcfService
    {
        public WcfService(){}

        public void Start()
        {
            try
            {
                Uri _baseAddress = new Uri(String.Format("http://11.196.7.1:8300/TestWcfService", IP, Port));
                ServiceHost _selfHost = new ServiceHost(this, _baseAddress);
                _selfHost.AddServiceEndpoint(typeof(WcfService), new WSHttpBinding(), _baseAddress);

                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                smb.HttpGetEnabled = true;
                _selfHost.Description.Behaviors.Add(smb);
                _selfHost.Open();
            }
            catch (Exception ex)
            {
                _selfHost.Abort();
            }
        }

        [OperationContract]
        public Guid GetNewGuid()
        {
            return Guid.NewGuid();
        }
    }


Мой ПК находится во внутринней сети нашей фирмы и eказанный IP адрес 11.196.7.1 является внутренним.
Если я буду пытатся получить доступ к этой службе из ПК, который не находится внутри нашей сети, то ничего не получится.
Я правильно понимаю?
Если да, то как мне получить доступ к этой службе из вне нашей сети?
Re: WCF Внешний доступ к службе
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.11.10 11:23
Оценка:
Здравствуйте, lutikman, Вы писали:

L>Я правильно понимаю?


Да

L>Если да, то как мне получить доступ к этой службе из вне нашей сети?


Настроить на шлюзе сети port forwarding. Лучше кого-то попросить это сделать, кто умеет.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: WCF Внешний доступ к службе
От: lutikman  
Дата: 25.11.10 11:42
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, lutikman, Вы писали:


L>>Я правильно понимаю?


A>Да


L>>Если да, то как мне получить доступ к этой службе из вне нашей сети?


A>Настроить на шлюзе сети port forwarding. Лучше кого-то попросить это сделать, кто умеет.


Вопрос в другом.
Я набераю в браузере ссылку:
http://11.196.7.1:8300/TestWcfService


Получаю:

Служба создана.

Чтобы протестировать эту службу, необходимо создать клиент и воспользоваться им для вызова службы. Это можно сделать, запустив программу svcutil.exe из командной строки со следующим синтаксисом:

svcutil.exe http://10.195.7.1:8300/TestWcfService?wsdl

Это ведет к созданию файла конфигурации и файла кода, содержащего класс клиента. Добавьте эти два файла в клиентское приложение и используйте сгенерированный класс клиента для вызова службы. Например:

C#
class Test
{
    static void Main()
    {
        WcfServiceClient client = new WcfServiceClient();

        // Используйте переменную "client", чтобы вызвать операции из службы.

        // Всегда закройте клиент.
        client.Close();
    }
}


А хотелось бы получить:
svcutil.exe http://[внешней IP]:port/TestWcfService?wsdl


Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети
Как это сделать?
Re[3]: WCF Внешний доступ к службе
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.11.10 11:44
Оценка:
Здравствуйте, lutikman, Вы писали:

L>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети


Заведите себе доменное имя и генерируйте для него. Доменное имя ещё не раз пригодится. У себя можете его добавить в файл hosts. Сколько раз использовал публичный IP, столько раз он потом менялся.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: WCF Внешний доступ к службе
От: lutikman  
Дата: 25.11.10 11:55
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, lutikman, Вы писали:


L>>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети


A>Заведите себе доменное имя и генерируйте для него. Доменное имя ещё не раз пригодится. У себя можете его добавить в файл hosts. Сколько раз использовал публичный IP, столько раз он потом менялся.


Нужно без использования доменного имени.
Re[3]: WCF Внешний доступ к службе
От: alexsoff Россия  
Дата: 25.11.10 12:00
Оценка:
Здравствуйте, lutikman, Вы писали:

L>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети


А что мешает подправить конфиг после генерации?
Re[4]: WCF Внешний доступ к службе
От: lutikman  
Дата: 25.11.10 12:32
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>Здравствуйте, lutikman, Вы писали:


L>>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети


A>А что мешает подправить конфиг после генерации?


Да ничего не мешает, но задача поставлена так, чтобы генерировался конфик с внешним IP сети.
Какие еще варианты?
Кто как делал в таких ситуациях если они возникали?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.