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”的默认端点元素。这可能是因为没有找到适用于您的应用程序的配置文件,或者因为在客户端元素中找不到匹配此合同的端点元素。
问题(在其他地方发现)是我必须将配置移动到发起呼叫的项目。莫名其妙(现在似乎不合适),但现在它似乎工作。
当您添加引用时,您的配置通常会自动更新。似乎在那里出了问题。 – 2011-06-06 20:29:18
当这解决了您的问题时,不要忘记标记自己的帖子作为回答以显示此问题已解决 – eFloh 2011-06-07 06:49:26
如果你是指如何在VS2010 右键单击添加引用旧ASMX款式参考,并选择“添加服务引用” 然后单击“高级”,然后单击“添加Web引用”
对于WCF服务只需右键点击并说“添加参考”
使用它 - 输入您的班级名称。由于我不知道你的名字空间,你可能必须在顶部包含一个导入。但基本上 - ServiceReference1.WhateverClient cleint = new ServiceReference1.WhateverClient();
当您在代码中执行ServiceReference1时,应该会看到生成的类名称。你只需创建一个实例并调用它。
没有。我知道。这是有效的。我也知道如何添加新的,但我不知道如何使用新的。 :)所以我的问题是 - 上面的代码是旧的,新的相当于什么。 – b0x0rz 2011-06-06 16:36:36
看到我的编辑其基本相同。 – 2011-06-06 17:19:14
这就是我想的,但然后我得到一个错误:找不到在ServiceModel客户端配置部分中引用合同'Service1.Service1Soap'的默认端点元素。这可能是因为没有找到适用于您的应用程序的配置文件,或者因为在客户端元素中找不到匹配此合同的端点元素。有任何想法吗!? – b0x0rz 2011-06-06 18:24:17
打开您的app.config并查找其中生成的端点配置元素的名称。然后使用过载调用new ServiceClient()
来指定端点。
现在它说的是一个类似的事情:在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对应于 “名”
- 远程地址对应于“地址“
创建一个新的C#控制台应用程序项目。 在这里,我已经将该项目的名称指定为“MyFirstWebServiceConsumerApp”。 点击“确定”按钮继续。
转到解决方案资源管理器并右键单击您的控制台应用程序项目名称。 在这种情况下,右键单击“MyFirstWebServiceConsumerApp”并从下拉菜单中选择“添加服务引用...”。
点击“前进”按钮。
单击“添加Web引用..”按钮。
添加Web引用窗口将出现在c#.net中使用Web服务。 在此输入Web服务的URL。 现在,点击按钮(见下图)来检索此窗口中的所有Web服务方法。
输入Web服务URL并单击 - >按钮检查Web服务URL是否有效。如果URL有效,它会显示可用的Web方法,状态将显示为“发现1服务:”
输入Web服务引用名称。我使用“MyFirstWebServiceReference”作为Web服务引用名称,如上图所示。现在,点击“添加参考”按钮。
现在检查解决方案资源管理器。 “MyFirstWebServiceReference”必须添加到Web引用文件夹下。
下一步是将此Web服务的引用添加到我们的C#代码中,以便我们可以在代码文件中使用它。在代码文件中添加以下行消耗c#.net中的Web服务 - 使用MyFirstWebServiceConsumerApp的 。MyFirstWebServiceReference;
添加以下代码来调用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();
}
}
}
- 现在保存的文件和执行应用程序。按键盘上的F5键执行代码。结果应如下所示 - 您的第一个Web服务消费者控制台应用程序已准备就绪。
当您尝试“添加服务参考”时会发生什么? – 2011-06-06 18:25:56
工作(添加引用),但是当我打电话(见上面更新)它失败。 – b0x0rz 2011-06-06 18:26:57