如何动态修改ASP.NET Web服务的URL
2010-11-25 18:59
543 查看
有时,您可能既是 Web 服务提供方,又是 Web 服务使用方。在这种情况下,您或许知道 Web 服务的位置和功能。而在其他情况下,您可能访问由他人提供的 Web 服务。当出现这种情况时,您可能甚至不知道适合目的的 Web 服务实际上是否存在。
Web 引用
为了简化编码模型,用托管代码编写的应用程序使用 Web 引用在本地表示每个 Web 服务。通过使用“添加 Web 引用”对话框,将 Web 引用添加到项目。该对话框使您能够浏览您的本地服务器、Microsoft UDDI 目录和整个 Internet。Web 服务提供方在 Web 服务目录中公开其 Web 服务,Web 服务使用方将在该目录中搜索要使用的 Web 服务。有关更多信息,请参见 XML Web services 目录。
“添加 Web 引用”对话框使用 Web 服务发现过程,来查找您在该对话框中浏览到的网站上符合条件的 Web 服务。对于给定的地址,它将使用算法询问网站,该算法用于查找符合 Web 服务描述语言 (WSDL) 语法的 Web 服务说明文档。有关更多信息,请参见 XML Web services 发现和 XML Web services 说明。
通过使用“添加 Web 引用”对话框找到应用程序要访问的 Web 服务之后,单击“添加引用”按钮指示 Visual Studio 将服务说明下载到本地计算机,然后为所选的 Web 服务生成代理类。代理类将包含同步和异步调用每个公开的 Web 服务方法的方法。该类包含在本地 .wsdl 文件的代码隐藏文件中。有关更多信息,请参见 Visual Studio 中的 Web 引用和“添加 Web 引用”对话框。
可以使用 Web 引用 URL 属性来指定 Web 服务的 URL。默认情况下,“添加 Web 引用”将此属性设置为所选 Web 服务的 URL,这是一个静态 URL。Web 引用可以使用静态 URL 或动态 URL。
如果保留对“URL 行为”所设置的静态默认值,则当创建该代理类的实例时该类会使用硬编码 URL 来设置 URL 属性。
如果将 Web 引用的“URL 行为”属性设置为动态的,则应用程序在运行时从应用程序配置文件的 appSettings 元素(常规设置架构) 中获得该 URL。如果在添加 Web 引用后指定动态 URL,Visual Studio 将更新代理类以从配置文件中获得 URL。
view source
print?
当创建代理对象的实例时,也可以在应用程序中设置该对象的 URL 属性。
无论代理使用哪种 URL,该 URL 均必须是遵循某 WSDL 的 Web 服务的 URL,而该 WSDL 与添加 Web 引用时所使用的 WSDL 匹配。
或者,您也可以使用工具(Web 服务描述语言工具)来生成代理类,该工具类似于添加 Web 引用时 Visual Studio 用来创建代理类的工具。当无法从装有 Visual Studio 的计算机上访问 Web 服务时(例如,只有在运行时客户端才能访问 Web 服务所在的网络时),便需要这样做。然后,将工具生成的文件手动添加 到应用程序项目中。有关更多信息,请参见 如何:生成 Web 服务代理。
Web 引用
为了简化编码模型,用托管代码编写的应用程序使用 Web 引用在本地表示每个 Web 服务。通过使用“添加 Web 引用”对话框,将 Web 引用添加到项目。该对话框使您能够浏览您的本地服务器、Microsoft UDDI 目录和整个 Internet。Web 服务提供方在 Web 服务目录中公开其 Web 服务,Web 服务使用方将在该目录中搜索要使用的 Web 服务。有关更多信息,请参见 XML Web services 目录。
“添加 Web 引用”对话框使用 Web 服务发现过程,来查找您在该对话框中浏览到的网站上符合条件的 Web 服务。对于给定的地址,它将使用算法询问网站,该算法用于查找符合 Web 服务描述语言 (WSDL) 语法的 Web 服务说明文档。有关更多信息,请参见 XML Web services 发现和 XML Web services 说明。
通过使用“添加 Web 引用”对话框找到应用程序要访问的 Web 服务之后,单击“添加引用”按钮指示 Visual Studio 将服务说明下载到本地计算机,然后为所选的 Web 服务生成代理类。代理类将包含同步和异步调用每个公开的 Web 服务方法的方法。该类包含在本地 .wsdl 文件的代码隐藏文件中。有关更多信息,请参见 Visual Studio 中的 Web 引用和“添加 Web 引用”对话框。
可以使用 Web 引用 URL 属性来指定 Web 服务的 URL。默认情况下,“添加 Web 引用”将此属性设置为所选 Web 服务的 URL,这是一个静态 URL。Web 引用可以使用静态 URL 或动态 URL。
如果保留对“URL 行为”所设置的静态默认值,则当创建该代理类的实例时该类会使用硬编码 URL 来设置 URL 属性。
如果将 Web 引用的“URL 行为”属性设置为动态的,则应用程序在运行时从应用程序配置文件的 appSettings 元素(常规设置架构) 中获得该 URL。如果在添加 Web 引用后指定动态 URL,Visual Studio 将更新代理类以从配置文件中获得 URL。
view source
print?
1 | <appSettings> |
2 | <add key= "myApplication.myServer.Service1" |
3 | value= "http://myServer/myWebService/Service1.asmx" /> |
4 | </appSettings> |
无论代理使用哪种 URL,该 URL 均必须是遵循某 WSDL 的 Web 服务的 URL,而该 WSDL 与添加 Web 引用时所使用的 WSDL 匹配。
或者,您也可以使用工具(Web 服务描述语言工具)来生成代理类,该工具类似于添加 Web 引用时 Visual Studio 用来创建代理类的工具。当无法从装有 Visual Studio 的计算机上访问 Web 服务时(例如,只有在运行时客户端才能访问 Web 服务所在的网络时),便需要这样做。然后,将工具生成的文件手动添加 到应用程序项目中。有关更多信息,请参见 如何:生成 Web 服务代理。
相关文章推荐
- ASP.NET中动态修改web.config中的设置项目(CS页代码)
- asp.net(C#)动态修改Web.config文件
- ASP.NET中动态修改web.config中的设置项目(前台代码)
- 转贴(csdn):ASP.NET Web 服务如何工作
- [转载]ASP.NET Web 服务还是 .NET Remoting:如何选择,使用 Microsoft .NET 建立分布式应用程序
- ASP.NET Web 服务还是 .NET Remoting:如何选择(1)
- 是使用 ASP.NET Web 服务还是使用 .NET Remoting:如何选择
- ASP.NET中动态修改web.config中的设置项目(CS页代码)
- ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
- ASP.NET Web 服务如何工作
- ASP.NET jQuery 实例10 动态修改hyperlink的URL值
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- ASP.NET 如何动态修改 title Meta link标签
- 是使用 ASP.NET Web 服务还是使用 .NET Remoting:如何选择
- (转)ASP.NET 2.0中如何动态修改Header属性如添加Meta标签
- ASP.NET中动态修改web.config中的设置项目(前台代码)
- ASP.NET Web 服务还是 .NET Remoting:如何选择(2)
- 使用ASP.NET Web服务代理的URL行为属性
- 如何使用来自 ASP.NET 的客户端证书调用 Web 服务