2013-04-16 3 views
0

У меня есть некоторые сомнения в использовании сервисных ссылок для приложения, которое будет развернуто для разных клиентов. Это служба WCF на vb.net, которая будет размещаться в службе Windows, и будет использоваться разными клиентами с разными IP-адресами. В разных средах, так сказать.WCF: Сервис Ссылки на производство

Я уже сделал сервер и клиент. Они отлично работают с использованием сервисных ссылок на клиенте, но поскольку для этого нужен URL-адрес службы (которая будет иметь эту структуру: net.tcp: // SomeHost: 6666/SomeService), возникает вопрос: что я могу сделать использовать ссылки на службы в среде клиента? Я думаю о чем-то вроде изменения своего URL-адреса программно, но я не знаю, возможно ли это.

Конечно, имя хоста изменится с клиента на клиента, но ссылки на службы являются статическими. Я думал об использовании другого подхода, например: http://mstecharchitect.blogspot.com.ar/2009/01/invoking-wcf-service-without-service.html. Но это заставило бы меня потерять преимущества Service Reference, которая, как я понимаю, создает необходимый прокси-сервер, поэтому я могу использовать его на стороне клиента.

Независимо от информации, необходимой вам для помощи, не стесняйтесь спрашивать. И спасибо заранее!

+0

Просто укажите адрес конечной точки службы в файле конфигурации. –

ответ

0

Вы можете сохранить в файле конфигурации (например, appsettings), адрес вашей конечной точки службы, когда в коде вы обновите только имя хоста.

Ваши настройки будут содержать что-то вроде net.tcp: // {0}: 6666/SomeService.

При создании экземпляра клиента (прокси) вы добавите определенный хост и передаете этот встроенный адрес.

Что-то вроде:

app.config на клиенте:

<appSettings> 
    <add key="YourService.ClientAddress" value="net.tcp://{0}:6666/SomeService" /> 
    . . . 

затем, в коде,

string endpointUrl = string.Format(ConfigurationManager.AppSettings["YourService.ClientAddress"], Your_Host_name); 
    YourClient client = new YourClient(YourEndpointName, endpointUrl); 
+0

Отличный, спасибо! Только то, что мне было нужно. – Pona

0

Вы можете использовать различные конфигурационные файлы для каждого клиента, посмотрите в этой статье Getting Away with Client Config in WCF

+0

Я отметил @ evgenyl как ответ, потому что это помогло мне немного больше в том, как использовать appsettings, но ваш был так же велик, поэтому спасибо! Хотелось бы, по крайней мере, проголосовать за это, но для этого мне нужно более 15 очков. – Pona

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