【问题标题】:.net web service reference update while publishing.net Web 服务参考更新,同时发布
【发布时间】:2017-02-02 14:05:30
【问题描述】:

我有一个网站项目,我在其中使用网络服务来获取数据。该服务是与网站位于同一项目中的 .asmx。因此,此 Web 服务的引用(web.config、.svcinfo、.disco、.wsdl 和 .svcmap 中的端点)在开发时指向 localhost。部署网站(发布)时,我需要在构建之前更新引用,以便它指向我正在部署它的位置。

我在不同的构建上下文中使用了 web.config-transformations 来更新 web.config 中的引用,并尝试创建一个 BeforeBuild 任务以通过调用 SvcUtil.exe 来生成 .wsdl、.svcinfo 等。

Web.config 转换工作正常,但 SvcUtil.exe 尝试发现已部署地址上的 Web 服务以生成文件,所以...因为所有这一切都发生在部署时,然后由于没有 Web 服务而不会生成文件目标地址。

我发现流程应该是这样的:
1- 从 web.config-transformations
获取目标地址 2- 发现 LOCAL(在项目中,不在目标中)Web 服务
3- 使用目标地址创建或更新 .wsdl、.disco 等
4-构建
5- 部署

但我不知道如何让它发挥作用……有什么想法吗?

【问题讨论】:

  • 不能发布,更新参考,再发布吗?将来,最好避免将 Web 服务和客户端代码放在同一个项目中,以避免出现这种情况。您应该能够独立发布任何一方。
  • 你是绝对正确的@Seano666,但我们凡人必须按照老板想要的方式编写代码......不管这是否是最好的方式。
  • 这是多么真实:),我很好奇我提到的双重发布是否可行。
  • 是的@Seano666,双重发布工作......我只是想避免它,因为我觉得必须有一个更聪明的方法来实现它。现在试试 Tomassino 的建议

标签: c# asp.net web-services wsdl


【解决方案1】:

我不确定这是否适用于ASMX,但在WCF 中,使用配置转换修改 web.config 就足够了。无需再次更新服务参考。仅在服务方法发生变化时更新服务参考。

生成的服务类应该使用相对地址。然后地址前缀从 web.config 文件中变为红色。

【讨论】:

    猜你喜欢
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2011-01-10
    相关资源
    最近更新 更多