Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布时更新.net web服务引用_C#_Asp.net_Web Services_Wsdl - Fatal编程技术网

C# 发布时更新.net web服务引用

C# 发布时更新.net web服务引用,c#,asp.net,web-services,wsdl,C#,Asp.net,Web Services,Wsdl,我有一个web站点项目,其中我使用web服务获取数据。该服务是与网站位于同一项目中的.asmx。因此,此web服务的引用(web.config、.svcinfo、.disco、.wsdl和.svcmap中的端点)在开发时指向localhost。在部署网站(发布)时,我需要在构建之前更新引用,以便它指向我要部署它的位置 我在不同的构建上下文中使用了web.config转换来更新web.config中的引用,并尝试通过调用SvcUtil.exe创建BeforeBuild任务来生成.wsdl、.svc

我有一个web站点项目,其中我使用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-发现本地(在项目中,而不是在目标中)web服务
3-使用目标地址创建或更新.wsdl、.disco等
4-构建
5-部署


但是我没有办法让它工作。。。有什么想法吗?

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


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

您不能发布、更新引用,然后再次发布吗?在将来,避免将web服务和客户端代码放在同一个项目中是一个好主意,以避免类似的情况。你应该能够独立发布任何一方。你完全正确@Seano666,但我们凡人必须按照老板的要求编写代码。。。不管这是不是最好的方式。这有多正确:),我很好奇我提到的双重出版是否有效。是的@Seano666,双重出版有效。。。我只是想避免它,因为我觉得必须有一个更聪明的方法来实现这一点。现在试试托马西诺的建议