我有一个网站项目,在其中我使用web服务来获取数据。该服务是与网站位于同一项目中的.asmx。因此,此web服务的引用(web.config、.svcinfo、.disco、.wsdl和.svcmap中的端点)在开发时指向localhost。当部署网站(发布)时,我需要在构建之前更新引用,以便它指向我部署它的位置。
我在不同的构建上下文中使用了web.config转换来更新web.config中的引用,并试图通过调用SvcUtil.exe.来创建BeforeBuild任务以生成.wsdl、.svcinfo等
Web.config转换工作正常,但SvcUtil.exe尝试在部署的地址上发现Web服务以生成文件,因此…由于所有这些都是在部署时发生的,因此由于目标地址中还没有Web服务,因此不会生成任何文件。
我发现流程应该是这样的:
1-从web.config转换中获取目标地址
2-发现LOCAL(在项目中,而不是在目标中)web服务
3-创建或更新目标地址为
4的.wsdl、.disco等-构建
5-部署
但我不知道如何让它发挥作用。。。有什么想法吗?
我不确定这是否适用于ASMX
,但在WCF
中,使用配置转换修改web.config就足够了。无需再次更新服务引用。仅当服务方法发生更改时才更新服务引用
生成的服务类应使用相对地址。然后,web.config文件中的地址前缀为红色。