使用WCF服务类(.cs文件)不作为WCF

时间:2011-11-16 16:15:01

标签: c# wcf visual-studio-2005

好吧,我不确定是否有重复,因为我想不出更好的方式来提出这个问题。

我有一个WCF服务(接口作为合同,然后是一个实现接口的类 - 按照惯例)。它是托管的,每个人都可以看到该服务,我可以正常调用这些函数。

我们正在使用Visual Studio 2005(在本例中为C#)。

我正在尝试创建一个控制台应用程序,它引用(作为Web引用)WCF类,并调用方法。这是我可以直接调试它。我知道这是可能的(也就是说:我几乎可以肯定它是可能的)但每次我尝试时,我的控制台应用程序都会爆炸,因为我还没有为它提供WCF必需品(端点等)。我倾向于大喊:“好吧,呃:我试着把它称为.dll,而不是Web服务!”但我认为这不会有太大帮助。

我得到的具体错误是“无法在ServiceModel客户端配置部分找到引用合同'SafetyKleen.BizTalk.CryptoService.IRetrievalService'的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。“但是,我再次特别试图避免通过WCF调用它。

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:3)

应该没有什么可以阻止您创建控制台应用程序,引用包含服务契约(接口)和实现的程序集,实例化实现并直接调用某些方法:

class Program
{
    static void Main()
    {
        var service = new MyService1();
        var result = service.SomeMethod(new SomeDataContract
        {
            Prop1 = "value 1"
        });
    }
}

没有WCF参与电话会议。

但出于调试目的,您只能使用WcfTestClient实用程序。

答案 1 :(得分:0)

我对WCF服务类进行了单元测试,将它们实例化为普通类。 但是,我怀疑像OperationContext.Current这样的东西在这种情况下可能会引起问题。

答案 2 :(得分:0)

错误可能来自app.config文件和/或服务引用。如果您尝试使用与使用WCF服务的客户端项目相同的客户端项目,您可能在app.config中有一个服务引用和一堆WCF配置 - 或者您可能清理了app.config但没有删除服务参考?