如何使用SvcUtil.exe生成WCF服务
我正在使用SvcUtil.exe从wsdl文件生成IClassName.cs文件,这是正常的。 我的问题是我不知道如何使用SvcUtil.exe的命令参数生成ClassName.svc文件。
运行SvcUtil.exe后,我希望得到WCF服务,就像从Visual Studio向导创建包含所有类* .svc,*。cs和接口的服务一样。
谢谢,Skrch
首先要生成代理类,我们需要启动并运行我们的服务。 因此,在使用此实用程序之前,请确保您的服务正常运行。
validation服务状态后,转到Visual Studio命令提示符并运行以下命令。
svcutil http://localhost/MyService/ClassName.svc /Language=c# /t:Code /out:ClassNameProxy.cs /config:ClassNameProxy.config
在上面的命令中,您应该使用服务的URL替换服务URL( http://localhost/MyService/Service1.svc
)。 由于我的服务是在c#.net中开发的,所以我选择使用/ Language = c#flag生成相同语言的代理。
/ t:代码将指定输出应该作为代码生成。
/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 myAssembly.dll
的服务合同和关联类型生成元数据文档
svcutil myServiceHost.exe /serviceName:myServiceName
– 为服务生成元数据文档,并在程序集中生成所有关联的服务合同和数据类型
svcutil myServiceHost.exe / dconly – 为程序集中的数据类型生成元数据文档
svcutil /validate /serviceName:myServiceName myServiceHost.exe
– validation服务托管
svcutil /t:xmlserializer myContractLibrary.exe
– 为程序集中的任何服务契约使用的XmlSerializer类型生成序列化类型
对于仍在寻找答案且无法使2012版本正常工作的人,Visual Studio 2015和.Net 4.5已更新svcutil.exe工具以使用/ serviceContract开关生成一个类,然后可以将其实现为.svc服务。 您可能需要提供/ syncOnly / wrapped / messageContract开关,具体取决于原始XSD
我认为.NET 4.5 契约优先工具作为构建任务集成到Visual Studio 2012中,它将帮助您生成所需的服务文件。
通常需要从现有服务创建服务合同。 在.NET Framework 4.5中,可以使用契约优先工具从现有服务自动创建数据协定类。 要使用契约优先工具,必须在本地下载XML模式定义文件(XSD); 该工具无法通过HTTP导入远程数据协定。
http://msdn.microsoft.com/en-us/library/hh674270(v=vs.110).aspx
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文件夹,代理文件和配置文件中生成两个文件,
更多细节在这里 。