【问题标题】:adding wsdl to .net website doesn't work将 wsdl 添加到 .net 网站不起作用
【发布时间】:2013-06-28 13:03:24
【问题描述】:

我正在尝试将 Web 服务引用添加到我客户的 Windows 服务器。我可以通过单击菜单中的Add Service Reference 并在地址栏中键入正确的 Web 服务 URL 来添加它。然后我单击GO 按钮来验证网址。它完美地定位了 Web 服务。然后我点击OK 按钮完成这项工作。

然后我看到 Visual Studio 创建了一个名为 App_WebReference 的文件夹,并在该文件夹中放置了一个类似 Reference.svcmap 的文件。

当我转到 c# 代码时,我试图调用 Web 服务,但我无法访问它。但是,如果我创建一个本地项目并执行我上面解释的相同操作,则此方法有效。

这里是网络服务url,如果你想看看的话。我究竟做错了什么?我没有任何代码可以显示,因为我无法从 c# 访问 Web 服务,因此我无法编写任何代码。我该怎么办?

【问题讨论】:

  • 添加 Serv 引用时应注意命名空间。然后使用它。
  • 你能解释一下 "当我转到 c# 代码时,我试图调用 web 服务,但我无法访问它。但是,如果我创建一个本地项目并做同样的事情,这个工作我在上面解释过。” 更多?什么是“达不到”?你有错误吗?什么是“转到 C# 代码”?这两个项目有什么区别?您如何使用生成的代码?
  • @henk-holterman 我将引用命名为“ziraat”。在 aspx.cs 文件中,我键入“ziraat.savetransation()”,智能感知不起作用,它看不到“ziraat”。我在本地项目中执行相同的程序,它可以工作
  • 在谈论服务时,“无法到达”一词通常以不同的方式使用(例如:服务无法访问),但您似乎找不到生成服务客户端的命名空间.在这种情况下,this question 看起来很相关。
  • 非常感谢您的努力。对不起英语

标签: c# asp.net web-services visual-studio wsdl


【解决方案1】:

当您添加服务参考时,您为其提供了ziraat 的命名空间,因此以下代码应该可以访问您尝试调用的方法:

using (var client = new ziraat.RegisterTransactionSoapClient())
{
    client.SaveTransaction(...);
}

此外,我在 Visual Studio 中看到了添加服务引用但生成的代码不正确的问题...这可能是您的问题?!尝试解决方法:

  • 右键单击解决方案资源管理器树中的 ziraat 服务参考项
  • 从出现的上下文菜单中单击配置服务参考...
  • 确保在引用的程序集中重用类型复选框未勾选
  • 点击确定保存更改

然后再次尝试上面的代码示例。

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 1970-01-01
    • 2011-09-18
    • 2018-07-11
    • 1970-01-01
    • 2014-07-18
    • 2017-07-22
    • 2011-05-24
    • 1970-01-01
    相关资源
    最近更新 更多