繁体   English   中英

如何在同一个网站上呼叫网络服务?

[英]How to call a webservice in the same website?

我必须调用在调用者aspx所在的同一网站上发布的web服务。

当我尝试“添加Web引用”时,编辑器不会显示生成的命名空间中的Web服务方法。

我是否必须使用“添加Web引用”或者是否有其他方式,因为Web服务位于同一网站中?

Visual Studio 2005,C#

谢谢,

爱德华多

我用Andy Rose在评论中写道的方式:

实例化webservice类并直接调用方法,因为它可以在项目中访问(无需添加Web引用)。

有办法欺骗它......您可以使用Web服务部署应用程序,然后添加对已部署位置的引用。

另一个想法是使用ctrl-f5启动它,以便不启动调试器,然后添加对localhost的引用:/。asmx

这将获取在web.config中创建的所有配置信息,当然,您可以在以后根据需要进行修改。

Web引用本身只是一个代理实现,因此VS可以假装它知道你的web服务如何对它的调用做出反应(所以你可以编译),你实际上可以在没有它们的情况下进行编码(尽管它更难:))。

如果你想这样做,你有一些我能想到的选择:

  1. 将您的Web服务创建为单独的项目,但将其部署到同一位置。 您将在bin目录中获得混合二进制文件,但否则它应该可以正常工作。 通过这种方式,您可以根据需要单独部署每个。
  2. 考虑将它们分成两个单独的应用程序。 无论出于何种原因,这可能无法使用。
  3. 在主项目中创建一个存根Web服务,它只包含函数定义(返回类型和参数)并进行部署,然后根据该服务生成您的Web服务。 然后,您可以根据原型开始开发并根据需要填写原型
  4. 克里斯建议做两步洗牌。 首先创建Web服务的近似表示,然后进行部署。 其次,创建代理,创建您的Web应用程序,部署和测试。 根据需要重复。

创建代理后,您可以更改它在代理绑定中指向的URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM