如何从C#webservice生成WSDL文件我创建了一个这样的WebService:[WebService(Namespace="http://ns")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]publicclassGroupManagerService:WebService{publicGroupManagerService(){}[WebMethod]publicboolMyMethod(stringloginname,stringcountry){//codehere...}}是否可以生成WSDL文件此代码而不是没有连接到正在运行的服务?我搜索并找到了有关SvcUtil.exe和wsdl.exe的信息,但这些信息仅在从正在运行的Web服务中检索WSDL时才有效。(对于java,有一个名为java2wsdl的工具,是否有等效的c#?):更新:这个问题的上下文是我正在向SharePoint添加一个新的CustomWebService,它应该使用WSPBuilder进行部署。另请参阅我在SharePoint.SE上的帖子。我想自动生成(使用msbuild命令)“MyServicewsdl.aspx”和“MyServicedisco.wsdl”,它们必须放在_vti_bin文件夹中。也许我错过了什么?svcutil.exe的输出是:binDebug>SvcUtil.exeMyWebService.dllMicrosoft(R)服务模型元数据工具[Microsoft(R)Windows(R)CommunicationFoundation,版本3.0.4506.2152]版权所有(c)MicrosoftCorporation。版权所有。正在生成元数据文件...警告:未生成元数据文件。没有出口服务合同。要导出服务,请使用/serviceName选项。要导出数据合同,请指定/dataContractOnly选项。这有时会发生在某些安全上下文中,例如当通过UNC网络文件共享加载程序集时。如果是这种情况,请尝试将程序集复制到受信任的环境中并运行它。编译后的c#程序集(dll)生成一个WSDL文件。通常,您需要一个正在运行的服务(IIS或其他)来托管.asmx,以便您可以使用/MyWebService.asmx?wsdl检索WSDL此工具使用反射生成WSDL文件以从程序集(dll)检索所有信息.可以在https://github.com/StefH/WSDLGenerator找到下载见svcutil/?-=METADATAEXPORT=-说明:svcutil.exe可以导出已编译程序集中的服务、合同和数据类型的元数据。要导出服务的元数据,您必须使用/serviceName选项来指示要导出的服务。要导出程序集中的所有数据协定类型,请使用/dataContractOnly选项。默认情况下,为输入程序集中的所有服务合同导出元数据。语法:svcutil.exe[/t:metadata][/serviceName:][/dataContractOnly]*-包含要导出的服务、合同或数据合同类型的程序集的路径。标准命令行通配符可用于提供多个文件作为输入。选项:/serviceName:-要导出的服务的配置名称。如果使用此选项,则必须将具有关联配置文件的可执行程序集作为输入传递。Svcutil将搜索所有关联的配置文件用于服务配置。如果配置文件包含任何扩展类型,则包含这些类型的程序集必须在GAC中或使用/r选项显式提供。/reference:-将指定的程序集添加到用于解析类型引用的程序集集中。如果您正在导出或验证使用在配置中注册的第3方扩展(行为、绑定和BindingElements)的服务,请使用此选项来定位不在GAC中的扩展程序集。(缩写:/r)/dataContractOnly-仅对数据协定类型进行操作。服务合同将不会被处理。(缩写:/dconly)/excludeType:-要从导出中排除的类型的完全限定或程序集限定名称。在导出服务或一组服务合同的元数据时可以使用此选项以排除类型被导出。此选项不能与/dconly选项一起使用。(ShortForm:/et)Svcutil.exe肯定会在服务关闭的情况下生成WSDL的正确用法是svcutilyour.executable.dll(exe)。我正在使用它,所以我确定它会生成WSDL。以上就是C#学习教程:HowtogenerateWSDLfilesharingfromC#webservice。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
