visual studio 2010 web服务

问题描述:

无法找到引用/使用web服务的新方式。visual studio 2010 web服务

有添加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我可以以旧的方式做到这一点。并像他们说的那样调用Web引用 - 但如何使用SERVICE REFERENCE来实现。

我可以自己做服务引用,但不知道如何使用它。

任何人都可以帮助找到一个教程?或者知道什么代码,而不是使用:

(代码:.NET 2.0 - Web引用)

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”的默认端点元素。这可能是因为没有找到适用于您的应用程序的配置文件,或者因为在客户端元素中找不到匹配此合同的端点元素。

+0

当您尝试“添加服务参考”时会发生什么? – 2011-06-06 18:25:56

+0

工作(添加引用),但是当我打电话(见上面更新)它失败。 – b0x0rz 2011-06-06 18:26:57

问题(在其他地方发现)是我必须将配置移动到发起呼叫的项目。莫名其妙(现在似乎不合适),但现在它似乎工作。

+0

当您添加引用时,您的配置通常会自动更新。似乎在那里出了问题。 – 2011-06-06 20:29:18

+0

当这解决了您的问题时,不要忘记标记自己的帖子作为回答以显示此问题已解决 – eFloh 2011-06-07 06:49:26

如果你是指如何在VS2010 右键单击添加引用旧ASMX款式参考,并选择“添加服务引用” 然后单击“高级”,然后单击“添加Web引用”

对于WCF服务只需右键点击并说“添加参考”

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

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

+0

没有。我知道。这是有效的。我也知道如何添加新的,但我不知道如何使用新的。 :)所以我的问题是 - 上面的代码是旧的,新的相当于什么。 – b0x0rz 2011-06-06 16:36:36

+0

看到我的编辑其基本相同。 – 2011-06-06 17:19:14

+0

这就是我想的,但然后我得到一个错误:找不到在ServiceModel客户端配置部分中引用合同'Service1.Service1Soap'的默认端点元素。这可能是因为没有找到适用于您的应用程序的配置文件,或者因为在客户端元素中找不到匹配此合同的端点元素。有任何想法吗!? – b0x0rz 2011-06-06 18:24:17

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

+0

现在它说的是一个类似的事情:在ServiceModel客户端配置部分找不到名为'http:// localhost:50001/Service1.asmx'和合同'Service1.UserManagementSoap'的端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到匹配此名称的端点元素。 – b0x0rz 2011-06-06 18:58:37

您的类调用中缺少的参数在您的Web中。配置

搜索<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"); 

这应该够了。

这是客户端部分例如,在我的web.config

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

而且,缺少的参数是:

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

  1. 创建一个新的C#控制台应用程序项目。 在这里,我已经将该项目的名称指定为“MyFirstWebServiceConsumerApp”。 点击“确定”按钮继续。

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

  3. 点击“前进”按钮。

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

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

  6. 输入Web服务URL并单击 - >按钮检查Web服务URL是否有效。如果URL有效,它会显示可用的Web方法,状态将显示为“发现1服务:”

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

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

  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服务消费者控制台应用程序已准备就绪。
开始=>