不在C#中使用代理的WCF服务

时间:2017-06-05 07:47:50

标签: c# wcf

我的一位用户获得了WCF服务。我想在不添加任何代理的情况下检查服务是否正常工作。有什么方法可以在我的C#代码中实现这一点吗?

2 个答案:

答案 0 :(得分: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;
 }

希望这有帮助。

答案 1 :(得分:0)

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

如果您的Web服务地址是

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

你可以像这样找到你的wsdl文件:

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

返回的WSDL允许您查看WCF服务提供的所有方法。