我有一個WCF服務,方法是暴露如下: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消耗Web服務的基於桌面的應用程序。 此Web服務可以部署在多個位置,因此用戶可以通過從組合框中選擇一個URL來連接到任何Web服務。
在客戶端應用程序創建動態服務客戶如下所示:
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
問題是我必須再做所有的初始化..想,如果我連接到數據庫,然後我不得不再次建立連接字符串和所有的東西..
這是自然行爲還是我做錯了什麼?
其次, 我想驗證用戶的有效網址(的網絡服務)。如果它連接到有效的網址或不..我通過Ping命令做到這一點.. 這是什麼最好的辦法!
考慮創建第二個關於檢查url是否有效的問題。我不認爲ping命令是好主意,因爲它只測試主機地址並測試icmp協議,而不是tcp。主機可能不響應ping,但這並不意味着它不是有效的url。 – empi 2009-10-24 09:23:23