我正在使用SvcUtil.exe从 wsdl 文件生成IClassName.cs文件,并且工作正常。我的问题是我不知道如何使用 SvcUtil.exe 的命令参数生成ClassName.svc文件。
运行 SvcUtil.exe 后,我想获得 WCF 服务,就像您从包含所有类 *.svc、*.cs 和接口的 Visual Studio 向导创建时一样。
谢谢你,Skrch
我正在使用SvcUtil.exe从 wsdl 文件生成IClassName.cs文件,并且工作正常。我的问题是我不知道如何使用 SvcUtil.exe 的命令参数生成ClassName.svc文件。
运行 SvcUtil.exe 后,我想获得 WCF 服务,就像您从包含所有类 *.svc、*.cs 和接口的 Visual Studio 向导创建时一样。
谢谢你,Skrch
首先要生成代理类,我们需要启动并运行我们的服务。因此,在使用此实用程序之前,请确保您的服务正在运行,没有任何问题。
验证服务状态后,转到 Visual Studio 命令提示符并运行以下命令。
svcutil http://localhost/MyService/ClassName.svc /Language=c#
/t:Code /out:ClassNameProxy.cs /config:ClassNameProxy.config
在上面的命令中,您应该将服务 URL ( http://localhost/MyService/Service1.svc
) 替换为您的服务的 URL。由于我的服务是在 c#.net 中开发的,所以我选择使用 /Language=c# 标志以相同的语言生成代理。
/t:code 将指定输出应生成为代码。
/out:ClassNameProxy.cs /config:ClassNameProxy.config 参数将告诉实用程序按照这些参数值中指定的方式命名文件。运行命令后,工具将生成输出文件和配置文件。
之后,只需将 ClassNameProxy.cs 文件包含到您的项目中,然后打开 ClassNameProxy.config 文件并将条目复制到您的 web.config 文件中。您可能还需要更新 ClassNameProxy.vb 文件并根据您在项目中使用的命名空间更新命名空间。之后,您可以轻松地在代码中引用该服务并调用操作。
svcutil http://service/metadataEndpoint
- 从正在运行的服务或在线元数据文档生成客户端代码。
svcutil *.wsdl *.xsd /language:C#
- 从本地元数据文档生成客户端代码。
svcutil /dconly *.xsd /language:VB
- 从本地模式文档生成 VisualBasic 中的数据协定类型。
svcutil /t:metadata http://service/metadataEndpoint
- 从正在运行的服务下载元数据文档
svcutil myAssembly.dll
- 为组件中的服务合同和关联类型生成元数据文档
svcutil myServiceHost.exe /serviceName:myServiceName
- 为服务生成元数据文档,以及程序集中的所有相关服务合同和数据类型
svcutil myServiceHost.exe /dconly - 为程序集中的数据类型生成元数据文档
svcutil /validate /serviceName:myServiceName myServiceHost.exe
- 验证服务托管
svcutil /t:xmlserializer myContractLibrary.exe
- 为程序集中任何服务合同使用的 XmlSerializer 类型生成序列化类型
对于仍在寻找答案且无法使 2012 版本正常工作的任何人,Visual Studio 2015 和 .Net 4.5 已更新 svcutil.exe 工具以使用 /serviceContract 开关生成一个类,然后可以将其实现为 .svc 服务。您可能还需要提供 /syncOnly /wrapped /messageContract 开关,具体取决于原始 XSD
Svcutil.exe 基于来自服务的 Web 服务描述语言 (WSDL) 生成服务客户端代理。
打开 Visual Studio 命令提示符并运行命令
svcutil http://localhost/MyService/Service.svc /Language=c# /t:Code /out:C:\Service\ServiceProxy.cs /config:C:\Service\ServiceProxy.config
它在 C:\Service 文件夹中生成两个文件,代理文件和配置文件,
更多细节在这里。
我认为作为构建任务集成到 Visual Studio 2012 中的 .NET 4.5 Contract First Tool将帮助您生成所需的服务文件。
服务合同通常需要从现有服务中创建。在 .NET Framework 4.5 中,可以使用契约优先工具从现有服务自动创建数据契约类。要使用合约优先工具,必须在本地下载 XML 模式定义文件(XSD);该工具无法通过 HTTP 导入远程数据合约。
http://msdn.microsoft.com/en-us/library/hh674270(v=vs.110).aspx