[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 является внутренним.
Если я буду пытатся получить доступ к этой службе из ПК, который не находится внутри нашей сети, то ничего не получится.
Я правильно понимаю?
Если да, то как мне получить доступ к этой службе из вне нашей сети?
Здравствуйте, 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();
}
}
Здравствуйте, lutikman, Вы писали:
L>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети
Заведите себе доменное имя и генерируйте для него. Доменное имя ещё не раз пригодится. У себя можете его добавить в файл hosts. Сколько раз использовал публичный IP, столько раз он потом менялся.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, lutikman, Вы писали:
L>>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети
A>Заведите себе доменное имя и генерируйте для него. Доменное имя ещё не раз пригодится. У себя можете его добавить в файл hosts. Сколько раз использовал публичный IP, столько раз он потом менялся.
Здравствуйте, alexsoff, Вы писали:
A>Здравствуйте, lutikman, Вы писали:
L>>Т.е. хотелось бы чтобы конфиг файл генерировался в внешним IP сети
A>А что мешает подправить конфиг после генерации?
Да ничего не мешает, но задача поставлена так, чтобы генерировался конфик с внешним IP сети.
Какие еще варианты?
Кто как делал в таких ситуациях если они возникали?