如何使用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文件夹,代理文件和配置文件中生成两个文件,

更多细节在这里 。