如何使用wsdl生成Web服务
客户端为我提供了wsdl来生成Web服务。但是,当我使用wsdl.exe命令时,它生成了.cs类。我在我的Web服务中使用了这个类,当我将wsdl提供给客户端时,它与它们的模式不匹配。其实我想从.sml自动生成.asmx,以便我可以填写web方法。以便它将完全符合他们的模式。 希望它是有道理的。如何使用wsdl生成Web服务
如何使用wsdl /server
或wsdl /serverinterface
开关? 据我了解wsdl.exe命令行属性,这就是你要找的。
- ADVANCED -
/服务器
在另一方面:要创建的过时的技术解决方案,为什么呢?为什么不创建这个Web服务作为WCF服务。这是目前更现代,更灵活的方式来做到这一点!
马克
UPDATE:
当我在一个WSDL文件中使用wsdl /server
,我得到创建这个文件:
[WebService(Namespace="http://.......")]
public abstract partial class OneCrmServiceType : System.Web.Services.WebService
{
/// <remarks/>
[WebMethod]
public abstract void OrderCreated(......);
}
这基本上是几乎一模一样的代码当您将ASMX文件添加到您的解决方案时(在文件后面的代码中 - “yourservice.asmx.cs”),会生成该文件。我不认为你可以接近从WSDL文件创建ASMX文件。
您可以随时添加了“yourservice.asmx”手动 - 它并没有真正包含了:
<%@ WebService Language="C#" CodeBehind="YourService.asmx.cs"
Class="YourServiceNamespace.YourServiceClass" %>
没有那实际上我寻找。它会生成我不想要的代理类。我想自动生成abc.asmx。我想到了WCF,但通过使Web服务变得简单。 – alice7 2009-09-08 17:49:24
不能保证自动生成WSDL将匹配从中创建服务的WSDL接口。
在您的场景中,您应该将WSDL文件放置在您的Web站点某处,并让消费者使用该URL。您应该禁用web.config中的Documentation
协议,以便“?wsdl”不返回WSDL。请参阅<protocols>
Element。
另外,还要注意文章的第一段:
本主题是特定于传统技术。现在应使用Windows Communication Foundation (WCF)创建XML Web服务和XML Web服务客户端。
不幸的是,您找不到什么神奇的子弹解决方案。这里是你可以做什么:
-
在Visual Studio命令提示符窗口中使用此命令创建一个接口类:
wsdl.exe yourFile.wsdl /l:CS /serverInterface
使用VB或者CS为您所选择的语言。这将创建一个新的.cs
或.vb
文件。 创建一个新的.NET Web服务项目。将现有文件导入到您的项目中 - 在上面的步骤中创建的文件。
在你
.asmx.cs
文件中的代码查看,修改你的类这样:
public class MyWebService : System.Web.Services.WebService, IMyWsdlInterface
{
[WebMethod]
public string GetSomeString()
{
//you'll have to write your own business logic
return "Hello SOAP World";
}
}
你也可以放/放:“path \ to \ folder”把生成的代码放在一个特定的位置。 – b729sefc 2013-09-26 18:59:01
谢谢,巨大的帮助 – 2014-10-03 23:00:43
你就可以使用WSCF的WS代理类(Web服务契约优先)来自thinktecture.com的工具。所以基本上,你可以从wsdl创建webservices。创建asmx的,也许不是,但这很简单,不是吗?该工具精美地集成到VS2005-8(2010/WCF的新版本称为WSCF-blue)中。我用它加载并总是发现它非常好。
我还会注意到这一点,尽管我自己从来没有多少运气(特别是WSCF Blue)。也许我使用的是早期版本或其他东西。 – 2013-07-09 20:26:32
这可能是很晚回答。但可能会有所帮助有需要的: 如何WSDL转换为SVC:
- 假设你有在位置.wsdl文件:进一步访问,便于“E \”。
- 准备为每个.wsdl文件的命令为:E:\ YourServiceFileName.wsdl
- Permissions:假定您有管理权限来执行权限。打开目录:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin
- 右键单击到amd64 =>安全性=>编辑=>添加用户=>每个人或当前用户=>允许所有权限=>好。
- 在文本编辑器中为每个文件准备命令为:wsdl.exe E:\ YourServiceFileName.wsdl/l:CS/server。
- 现在打开Visual Studio命令提示符:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts \ VS2013 x64本地工具命令提示符。
- 执行上述命令。
-
进入目录:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ amd64,其中应生成相应的.CS文件。
9.将生成的CS文件移动到合适的位置。
这是vs cmd窗口最简单直接的方法。 – 2018-02-05 19:16:57
我其实也试过wsdl.exe/server或/ serverinterface它仍然在生成.cs类。 – alice7 2009-09-08 17:50:10