【问题标题】:visual studio 2010 web service视觉工作室 2010 网络服务
【发布时间】:2011-06-06 16:06:27
【问题描述】:

找不到引用/使用网络服务的新方法。

有添加 WEB REFERENCE (.net 2.0) 的旧方法,但我想使用新的服务引用。

以下教程:http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html 或:http://www.youtube.com/watch?v=qOqEKpYbTzw 我可以用旧方法来做。并像他们说的那样调用网络参考有效 - 但是如何使用 SERVICE REFERENCE 来代替。

我可以自己做服务引用,但是不知道怎么用。

谁能帮忙找教程?或者知道用什么代码代替:

(代码:.net 2.0 - 网络参考)

service1.Service1 s1 = new service1.Service1();
String result s1.HelloWorld();
Trace.WriteLine(result);

(代码:.net 4.0 - 服务参考)

这是我尝试过的

Service1.Service1SoapClient s1 = new Service1.Service1SoapClient();
String result = s1.HelloWorld();
Trace.WriteLine(result);

但它给出了一个错误:

在 ServiceModel 客户端配置部分中找不到引用合同“Service1.Service1Soap”的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。

【问题讨论】:

  • 当您尝试“添加服务参考”时会发生什么?
  • 有效(添加参考),但是当我调用它时(参见上面的更新)它失败了。

标签: c# asp.net web-services


【解决方案1】:

如果您指的是如何在 vs2010 中添加旧的 asmx 样式引用 右键单击引用并选择“添加服务引用” 然后点击“高级”,再点击“添加网页参考”

对于 wcf 服务,只需右键单击并说“添加引用”

使用它 - 输入您的班级名称。由于我不知道您的命名空间,您可能必须在顶部包含一个导入。但基本上—— ServiceReference1.WhateverClient cleint = new ServiceReference1.WhateverClient();

当您在代码中执行 ServiceReference1 时,您应该会看到生成的类名。您只需创建一个实例并调用它。

【讨论】:

  • 没有。我知道。那行得通。我也知道如何添加新的,但我不知道如何使用新的。 :) 所以我的问题是 - 上面的代码是旧的,新的是什么。
  • 这就是我的想法,但是我得到一个错误:在 ServiceModel 客户端配置部分中找不到引用合同“Service1.Service1Soap”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。有什么想法!?
【解决方案2】:

您的类调用中缺少的参数在您的 Web.Config 中

搜索<client> 部分:

<client>
  <endpoint address="http://ioe_test:8080/crypto.asmx" binding="basicHttpBinding"
    bindingConfiguration="cryptoSoap" contract="wscol_crypto.cryptoSoap"
    name="cryptoSoap" />
</client>

而且,缺少的参数是:

  • endpointConfigurationName 对应“名称”
  • 远程地址对应“地址”

所以,在我的例子中应该是:

ws_cryp.cryptoSoapClient cryp = new ws_cryp.cryptoSoapClient("cryptoSoap", "http://ioe_test:8080/crypto.asmx");

应该够了。

【讨论】:

    【解决方案3】:

    打开您的 app.config 并查找其中生成的端点配置元素的名称。然后使用 new ServiceClient() 调用的重载来指定端点。

    【讨论】:

    • 现在它说了类似的事情:在 ServiceModel 客户端配置部分中找不到名称为“localhost:50001/Service1.asmx”和合同“Service1.UserManagementSoap”的端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素。
    【解决方案4】:

    问题(在其他地方找到)是我必须将配置移至发起调用的项目。有点奇怪(现在看起来不合适),但现在它似乎起作用了。

    【讨论】:

    • 当您添加参考时,您的配置通常会自动更新。好像那里出了点问题。
    • 当这解决了您的问题时,不要忘记将您自己的帖子标记为答案以表明此问题已解决
    【解决方案5】:

    这是客户端部分的示例,在我的 Web.Config 中

    <client>
      <endpoint address="http://ioe_test:8080/crypto.asmx" binding="basicHttpBinding"
        bindingConfiguration="cryptoSoap" contract="ws_cryp.cryptoSoap"
        name="cryptoSoap" />
    </client>
    

    而且,缺少的参数是:

    • endpointConfigurationName 对应“名称”
    • 远程地址对应“地址”

    【讨论】:

      【解决方案6】:
      1. 创建一个新的 C# 控制台应用程序项目。 在这里,我将项目名称指定为“MyFirstWebServiceConsumerApp”。 点击“确定”按钮继续下一步。

      2. 转到解决方案资源管理器并右键单击您的控制台应用程序项目名称。 在这种情况下,右键单击“MyFirstWebServiceConsumerApp”并从下拉菜单中选择“添加服务引用...”。

      3. 点击“前进”按钮。

      4. 单击“添加 Web 引用..”按钮。

      5. 将出现一个添加 Web 引用窗口以使用 c#.net 中的 Web 服务。 在此处输入 Web 服务的 URL。 现在,单击按钮(见下图)以检索此窗口中的所有 Web 服务方法。

      6. 输入Web Service URL并点击->按钮检查Web Service URL是否有效。如果 URL 有效,它将向您显示可用的 Web 方法,并且状态将显示为“找到 1 个服务:”

      7. 输入 Web 服务参考名称。如上图所示,我使用“MyFirstWebServiceReference”作为 Web 服务引用名称。现在,点击“添加引用”按钮..

      8. 现在检查解决方案资源管理器。 “MyFirstWebServiceReference”必须添加到网络参考文件夹下。

      9. 下一步是将此 Web 服务的引用添加到我们的 c# 代码中,以便我们可以在代码文件中使用它。在代码文件中添加以下行使用 c#.net 中的 Web 服务 - 使用 MyFirstWebServiceConsumerApp.MyFirstWebServiceReference;

      10. 添加以下代码以调用 web 方法。

      所以最终的代码会显示为:

      using System;
      
      using System.Collections.Generic;enter code here
      
      using System.Linq;
      
      using System.Text;
      
      using MyFirstWebServiceConsumerApp.MyFirstWebServiceReference;
      
      namespace MyFirstWebServiceConsumerApp
      
      {
      
          class Program
      
          {
      
              static void Main(string[] args)
      
              {
      
                  Service1 webService = new Service1();
      
                  Console.WriteLine(webService.MyFirstWebMethod("Dhiraj”, “Kumar”));
      
                  Console.ReadLine();
      
              }
      
          }
      
      }
      
      1. 现在保存文件并执行应用程序。按键盘上的 F5 按钮执行代码。结果应如下图所示 - 您的第一个 Web 服务使用者控制台应用程序已准备就绪。

      【讨论】:

        猜你喜欢
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多