У меня есть служба WCF, и методы предоставляются следующим образом:
public interface IService
{
[OperationContract]
bool Read();
[OperationContract]
bool Write();
}
public class MyService : IService
{
//Constructor
MyService()
{
//Initialization
}
public bool Read()
{
//Definition
}
public bool Write()
{
//Definition
}
}
У меня есть настольное приложение, которое использует веб-службу через URL.
Этот веб-сервис можно развернуть в нескольких местах, чтобы пользователь мог подключиться к любому веб-сервису, выбрав URL-адрес в поле со списком.
В клиентском приложении я динамически создаю клиент службы, как показано ниже:
ServiceReference1.DXMyServiceClient _client = null;
_client = new DXMyServiceClient ();
_client.Endpoint.Address = new System.ServiceModel.EndpointAddress(url);
Вопросы
Во время отладки я замечаю всякий раз, когда вызываю какие-либо методы веб-службы, каждый раз, когда вызывается конструктор MyService (если я подключен к той же службе).
как например, когда я делаю:
_client.Read();//MyService () constructor is called
_client.Write();//MyService () constructor is called
Проблема в том, что мне нужно снова выполнить всю инициализацию .. например, если я подключаюсь к базе данных, тогда мне нужно снова построить строку подключения и все прочее ..
Это естественное поведение или я делаю что-то не так?
Во-вторых,
Я хочу подтвердить пользователя для действительного URL (веб-службы). Если он подключается к действительному URL или нет .. Я делаю это с помощью команды Ping ..
Каков наилучший подход для этого !!