我有一個WSDL文件在磁盤上並加載爲Web引用。問題在於Web引用本身正在我的機器上尋找WSDL(使用絕對路徑),這顯然不適用於隊友的機器。如何使用相對路徑引用WSDL文件?
是否可以讓Web引用查找具有相對路徑的WSDL,或從Resources文件中查找? WSDL用於第三方服務,我們修改了這個服務來添加一些額外的字段(按照他們的建議)。
我有一個WSDL文件在磁盤上並加載爲Web引用。問題在於Web引用本身正在我的機器上尋找WSDL(使用絕對路徑),這顯然不適用於隊友的機器。如何使用相對路徑引用WSDL文件?
是否可以讓Web引用查找具有相對路徑的WSDL,或從Resources文件中查找? WSDL用於第三方服務,我們修改了這個服務來添加一些額外的字段(按照他們的建議)。
將服務引用添加到計算機上的WSDL文件時,它將被複制到項目中的「服務引用」文件夾中。此時,您的服務的API已確定。有一個「Reference.svcmap」(XML)被創建,它保存了WSDL文件原始位置的位置。如果API更改,這樣可以更新項目中的服務引用。但是,即使沒有原始的WSDL文件,您也可以檢查代碼,您的團隊可以毫無問題地使用它。但是,如果您希望他們能夠在API更改時更新服務,那麼您需要將該WSDL文件實際託管在可公開訪問的位置。通常,Web服務本身提供了WSDL文件,並且您不會在文件系統上擁有它。如果您計劃更新和更改Web服務,則應連接到開發Web服務器上託管的WSDL。這真的是它所屬的地方,而不是本地文件。但是,沒有理由你的本地文件引用不能正常工作,直到有人試圖更新它。如果你的網絡服務從不改變,你就沒有問題。如果可以更改,則將其託管在某處並引用一個真實的URL。
我在Reference.svcmap文件中調整XML以嘗試相對路徑引用的初始測試不起作用,但如果您決定確實想讓這個工作按照您的問題描述,那麼這是讓您的嘗試。
我的建議是使用cmd行工具wsdl.exe或svcutil.exe創建可以添加到解決方案的.cs或.vb代理的程序代理。
這允許根本不需要wsdl文件。查看更多信息如何這裏.NET 2.0 http://msdn.microsoft.com/en-us/library/7h3ystb6(v=vs.80).aspx
對.NET 3.5或更高版本以及SvcUtil工具看這裏:http://msdn.microsoft.com/en-us/library/aa751905.aspx