Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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# 如何引用具有相对路径的WSDL文件?_C#_Visual Studio 2010_Web Services_Wsdl - Fatal编程技术网

C# 如何引用具有相对路径的WSDL文件?

C# 如何引用具有相对路径的WSDL文件?,c#,visual-studio-2010,web-services,wsdl,C#,Visual Studio 2010,Web Services,Wsdl,我在磁盘上有一个WSDL文件,并作为web引用加载。问题是web引用本身正在我的机器上寻找WSDL(使用绝对路径),这显然在队友的机器上不起作用 是否可以让web引用使用相对路径或从资源文件中查找WSDL?WSDL用于第三方服务,我们已对其进行了修改,以添加一些额外的字段(根据他们的建议)。当您在计算机上向WSDL文件添加服务引用时,它将被复制到项目中的“服务引用”文件夹中。此时,您的服务的API已确定。创建了一个“Reference.svcmap”(XML),它保存WSDL文件原始位置的位置。

我在磁盘上有一个WSDL文件,并作为web引用加载。问题是web引用本身正在我的机器上寻找WSDL(使用绝对路径),这显然在队友的机器上不起作用


是否可以让web引用使用相对路径或从资源文件中查找WSDL?WSDL用于第三方服务,我们已对其进行了修改,以添加一些额外的字段(根据他们的建议)。

当您在计算机上向WSDL文件添加服务引用时,它将被复制到项目中的“服务引用”文件夹中。此时,您的服务的API已确定。创建了一个“Reference.svcmap”(XML),它保存WSDL文件原始位置的位置。这样,如果API发生更改,您就可以更新项目中的服务引用。但是,即使没有原始的WSDL文件,您也可以签入代码,您的团队也可以毫无问题地使用它。但是,如果您希望他们能够在API发生更改时更新服务,那么您需要在一个可公开访问的地方实际托管该WSDL文件。通常,web服务本身提供WSDL文件,而您的文件系统中不会有它。如果计划更新和更改web服务,则应连接到托管在开发web服务器上的WSDL。这才是它真正的归属,而不是本地文件。但是,在有人尝试更新您的本地文件引用之前,您的本地文件引用没有理由不能正常工作。如果您的web服务从未更改,那么您就不会有问题。如果它可以改变,那么把它放在某个地方并引用一个真实的URL


我最初的测试是调整Reference.svcmap文件中的XML以尝试相对路径引用,但没有成功,但是如果您决定按照您的问题所述让它工作,这是您尝试的地方。

我的建议是使用cmd行工具wsdl.exe或svcutil.exe创建一个编程代理,以创建.cs或.vb代理,然后将其添加到解决方案中

这允许根本不需要wsdl文件。请参阅有关如何在此处使用.NET 2.0的更多信息

对于.NET 3.5或更高版本和svcutil,请参见此处: