我有标准的类库基础结构程序集,我在主应用程序中引用它。 基础结构程序集在内部使用Web服务,并向我的主应用程序公开功能。
为了让它工作,我需要在我的主应用程序中添加一个引用到web服务,否则我得到一个Endpointexeption。如果我添加它一切正常。在我看来,基础设施DLL读取主应用程序app.config中的信息,所以条目必须在那里。但由于主应用程序不直接调用webservie,因此我无法通过外部dll公开Web服务,这似乎很奇怪。甚至更奇怪的是,webservice忽略了主要的应用程序安全模式,并从外部dll的app.config中读取它。
如果我的假设是正确的,我如何在外部dll中公开web服务,而主应用程序知道web服务。
答案 0 :(得分:1)
,以确保生成的代理是内部的。
了解更多信息:
C#, WCF, Hide web service through dll
这会将WCF接口隐藏到客户端。
如果您不希望使用您的类库项目的客户端需要在其app / web.config中添加WCF配置密钥,则您的库必须在代码中配置EndPoint / address / binding(硬编码)但是我不会建议你沿着这条路走下去,好像WCF方面有些变化,你的类库将不再起作用
答案 1 :(得分:0)
您无需将服务引用添加到主应用程序,但必须将相关配置复制到主app.config