【问题标题】:Trying to consume a C# web service in VB.NET尝试在 VB.NET 中使用 C# Web 服务
【发布时间】:2014-06-05 18:23:22
【问题描述】:

我有一个由其他开发人员在这里编写的 Web 服务。

服务本身是用 C# 编写的。有两个地方我称之为。在我的 Windows VB.NET 应用程序中,它运行良好 - 我可以添加对 Web 服务的引用并调用该类的实例。

但是,当我尝试在页面后面的 ASPX.VB 代码中执行完全相同的操作时,我发现即使智能感知识别类和方法,当我尝试创建一个对象作为该类的新实例时,告诉我它没有定义。

出于我们的目的,我将调用服务实例 myWebSvc 在这个服务的顶部,公共类被命名为“Service1”

我已将网络引用添加到该网站,并且我尝试将其设置为:

Dim objSvc as myWebSvc.Service1 = New myWebSvc.Service1

这导致我收到以下编译错误:

编译器错误消息:BC30002:未定义类型“myWebSvc.Service1”。

我发现了一些提示,也许我需要创建一个代理服务来调用它,但我似乎也无法让它发挥作用。该参考位于 App_WebReferences/myWebSvc/ 中,并有一个 .discomap 文件以及嵌套在其下的 .disco 和 .wsdl 文件。

【问题讨论】:

  • 这是一个网站,还是一个网络应用项目?
  • 这是一个 Intranet 网站页面 - 该网站混合了 asp classic 和 asp.net 页面。
  • 指定您正在使用的网站很重要。大多数开发人员没有使用它们(有充分的理由),并且它们在许多方面表现不同。除此之外,您的服务引用可能在运行时被解释,而对于 Web 应用程序,它会在编译解决方案时被编译。
  • 感谢您告诉我。如果可以的话,我会把它做成一个 Web 应用程序,但目前它的大部分仍然在 asp classic 中

标签: c# asp.net .net vb.net web-services


【解决方案1】:

代理类很可能没有命名为myWebSvc.Service1。查看生成的代码(我猜它是您的 myWebSvc 目录中的 Reference.vb)并记住您在生成它时输入的名称,您会发现您需要类似以下内容:

myWebSvcReference1.Service1Client

【讨论】:

  • 谢谢,这为我指明了正确的方向。我正在使用 Visual Studio 2010,我终于能够找到为您生成代理类的程序。然后我在 app_code 和 viola 下添加了 VB 文件。成功了!
猜你喜欢
  • 2011-01-18
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多