繁体   English   中英

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

[英]Using WCF Service Class (.cs file) not as WCF

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

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

我们正在使用Visual Studio 2005(在这种情况下为C#)。

我正在尝试创建一个控制台应用程序,它引用( 而不是作为Web引用)WCF类,并调用方法。 这样我就可以直接对其进行调试。 我知道这是可能的(也就是说:我几乎可以确定),但是每次尝试时,我的控制台应用程序都会崩溃,因为我没有向其提供WCF必需品(端点等)。 我倾向于大声喊道:“好吧,老兄:我试图将其命名为.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参与通话。

但是出于调试目的,您还可以使用WcfTestClient实用程序。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM