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";
}
}
1
如何使用 wsdl /server 或 wsdl /serverinterface 开关?据我了解wsdl.exe命令行属性,'s what you'正在寻找 .
- ADVANCED -
/server
Server switch has been deprecated. Please use /serverInterface instead.
Generate an abstract class for an xml web service implementation using
ASP.NET based on the contracts. The default is to generate client proxy
classes.
5 回答
您无法保证自动生成的WSDL将与您从中创建服务接口的WSDL匹配 .
在您的场景中,您应该将WSDL文件放在您的网站上,让消费者使用该URL . 您应该在web.config中禁用
Documentation
协议,以便"?wsdl"不返回WSDL . 见<protocols> Element .另外,请注意该条的第一段:
这可能是很晚才回答 . 但可能对有需要的人有所帮助: How to convert WSDL to SVC :
假设您在位置"E:"处有.wsdl文件,以便于进一步访问 .
为每个.wsdl文件准备以下命令:E:\ YourServiceFileName.wsdl
权限:假设您具有执行权限的管理权限 . 打开目录: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 Native Tools命令提示符 .
执行上述命令 .
转到目录:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ amd64,应该生成相应的.CS文件 .
9.将生成的CS文件移动到适当的位置 .
不幸的是,没有一个神奇的子弹解决方案可以满足您的需求 . 这是你可以做的:
wsdl.exe yourFile.wsdl /l:CS /serverInterface
使用VB或CS作为您选择的语言 . 这将创建一个新的
.cs
或.vb
文件 .创建一个新的.NET Web服务项目 . 将现有文件导入项目 - 在上面的步骤中创建的文件 .
在代码视图的
.asmx.cs
文件中,修改您的类:如何使用
wsdl /server
或wsdl /serverinterface
开关?据我了解wsdl.exe命令行属性,'s what you'正在寻找 ./server
另一方面:您为什么要创建过时的技术解决方案?为什么不将此Web服务创建为WCF服务 . 这是当前和更现代,更灵活的方式来做到这一点!
渣
UPDATE:
当我在WSDL文件上使用
wsdl /server
时,我创建了这个文件:这基本上与将ASMX文件添加到解决方案时生成的代码完全相同(在代码隐藏文件中 - “yourservice.asmx.cs”) . 我认为你无法接近从WSDL文件创建ASMX文件 .
您可以随时手动添加“yourservice.asmx” - 它实际上并不多:
您可以使用thinktecture.com中的WSCF(Web Services Contract First)工具生成WS代理类 . 基本上,你可以从wsdl创建web服务 . 创建asmx,也许不是,但这很容易就是不是吗?该工具可以很好地集成到VS2005-8中(2010 / WCF的新版本称为WSCF-blue) . 我已经使用过它,总是发现它非常好 .