2017-06-05 94 views
1

我已经从我的一个用户那里得到了WCF服务。我想检查服务是否正常工作而不添加任何代理。有什么方法可以在我的C#代码中实现这一点?WCF服务没有在C#中使用代理服务器

+0

使用ChannelFactory 。您将需要访问服务程序集来执行此操作。 –

回答

0

您可以通过在WCF上实现端点并从客户端查询它来实现此目的。 以下是我将使用的WCF代码。

// Used for communication between WCF and client. Must be implemented both WCF and client sides 
public class Response { 
public int Id { get; set; } 
public string Data { get; set; } 
} 

// Web Service - Interface 
[ServiceContract] 
public interface IService 
{ 
     [OperationContract] 
     [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, 
      UriTemplate = "Up")] 
     string CheckLogin(); 
} 

// Web service - Implementation 
public class ServiceImplementation : IService 
{ 
    public Response isUp() 
    { 
     Response response = new Response(); 
     response.ID = 200; 
     response.Data = "web service is up"; 
     return response; 
    } 
} 

以下是测试服务是否启动的客户端方法。

public bool CheckIfUp(string encodedUrl) 
{ 
    WebRequest request; 
    WebResponse ws; 
    Response response = new Response(); 
    string url = "http://servicePath/isUp"; // your wcf url 
    try 
     { 
       request = WebRequest.Create(url); 
       ws = request.GetResponse(); 
       return (response.ID == 200); 
     } 
     catch (Exception e) 
     { 
       Console.Write(e.StackTrace); 
     } 
      return false; 
} 

希望这会有所帮助。

+0

我无权访问WCF服务代码。我只有服务网址。 –

0

尝试在指向WCF服务的URL处追加?wsdl

如果您的Web服务地址是

http://services.aonaware.com/DictService/DictService.asmx 

你可以这样达到您的WSDL文件:

http://services.aonaware.com/DictService/DictService.asmx?WSDL 

返回的WSDL,您可以看到所有的WCF服务提供的方法。