我有一个类库(.NET),它引用了一个Web服务(在某些服务器中,而不是同一解决方案中的项目).类库有一个暴露给COM的类.该类调用Web服务.
当我添加服务引用时,这会将代码添加到类库的app.config中.
我在同一解决方案中也有一个桌面应用程序,仅用于测试目的.当我运行此应用程序时,它会抛出此异常:
无法在ServiceModel客户端配置部分中找到引用合同“ServiceProxy.EventsServices”的默认端点元素.这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素.
可以通过将生成的类库app.config中服务引用的生成代码复制并粘贴到桌面应用程序的配置文件中来解决此异常.
当我部署时,我必须只部署DLL(从类库构建)而不是桌面应用程序.我需要在可以由DLL读取的配置文件中包含服务引用.
有什么建议?
谢谢!
解决方法
添加服务引用时,Visual Studio会为您生成代理,该代理会读取app.config文件以获取服务的URL.
您可以选择提供不使用配置文件的静态URL.
如果您想变得复杂,并且在没有app.config设置的情况下提供动态URL,您可以复制此生成的代码并对其进行修改以使用其他类型的配置数据源(例如参数)以及您可以部署的方式只是dll.
生成的代码隐藏在服务引用的代码后面.
要查看代码,您必须激活解决方案资源管理器的“显示所有文件”选项,并在Reference.map文件下查找文件Refecence.cs(或.vb).