C# 不将WCF服务类(.cs文件)用作WCF

C# 不将WCF服务类(.cs文件)用作WCF,c#,wcf,visual-studio-2005,C#,Wcf,Visual Studio 2005,好吧,我不确定是否有重复的,因为我想不出更好的方法来问这个问题 我有一个WCF服务(接口作为契约,然后是一个实现该接口的类-按照惯例)。它是托管的,每个人都可以看到服务,我可以正常调用函数 我们使用的是VisualStudio2005(本例中为C#) 我正在尝试创建一个控制台应用程序,它引用(而不是作为web引用)WCF类,并调用这些方法。这样我就可以直接调试了。我知道这是可能的(也就是说:我几乎肯定这是可能的),但每次我尝试时,我的控制台应用程序都会崩溃,因为我没有给它提供WCF必需品(端点等

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

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

我们使用的是VisualStudio2005(本例中为C#)

我正在尝试创建一个控制台应用程序,它引用(而不是作为web引用)WCF类,并调用这些方法。这样我就可以直接调试了。我知道这是可能的(也就是说:我几乎肯定这是可能的),但每次我尝试时,我的控制台应用程序都会崩溃,因为我没有给它提供WCF必需品(端点等)。对此,我倾向于大喊:“嗯,duh:我试着把它当作一个.dll,而不是一个Web服务来调用!”但我认为这不会有多大帮助

我得到的具体错误是“在ServiceModel客户端配置节中找不到引用约定‘SafetyKleen.BizTalk.CryptoService.IRetrievalService’的默认终结点元素。这可能是因为找不到应用程序的配置文件,或者是因为在客户端元素中找不到与此约定匹配的端点元素。“但是,我再次明确尝试避免通过WCF调用它


任何建议都将不胜感激。

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

class Program
{
    static void Main()
    {
        var service = new MyService1();
        var result = service.SomeMethod(new SomeDataContract
        {
            Prop1 = "value 1"
        });
    }
}
呼叫中未涉及WCF


但仅出于调试目的,您也可以使用该实用程序。

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

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

WcfTestClient仅适用于.net 3.5或更高版本,我没有适用于VS2005(.net 3)的版本。@AllenG,事实上,WcfTestClient适用于.net 3.5或更高版本。好的,我已经(在所有事情中)让它工作了删除并重新添加引用,直到它起作用。但是,你是正确的(我知道我没有那么疯狂)我建议在控制台应用程序中发布一些代码,在其中实例化服务对象并对其调用一个方法。您得到的错误向我表明您正在使用某些WCF组件,如通道工厂。