如何从C#Web服务生成WSDL文件 [英] How to generate a WSDL file from a C# webservice
问题描述
我已经创建了这样的WebService:
I've created a WebService like this:
[WebService(Namespace = "http://ns")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class GroupManagerService : WebService
{
public GroupManagerService()
{
}
[WebMethod]
public bool MyMethod(string loginname, string country)
{
// code here...
}
}
是否可以在不连接到正在运行的服务的情况下为该代码生成WSDL文件? 我搜索了,发现了有关 SvcUtil.exe &的信息. wsdl.exe ,但是只有从正在运行的WebService检索WSDL时,它们才起作用.
Is it possible to generate a WSDL file for this code without connecting to a running service? I searched and I found information about SvcUtil.exe & wsdl.exe, but these work only when retrieving the WSDL from a running WebService.
(对于 java ,有一个名为 java2wsdl 的工具,是否具有 c#的等效项?)
(For java, there is a tool called java2wsdl, is there a equivalent for c# ?)
:更新:
此问题的上下文是我要向SharePoint添加新的CustomWebService,应使用WSPBuilder在SharePoint的_vti_bin文件夹中进行部署.
另请参阅SharePoint.SE上的我的帖子.
:Update:
The context for this question is that I want to add new CustomWebService to SharePoint which should deployed using WSPBuilder in the _vti_bin folder on SharePoint.
See also my post on SharePoint.SE.
我想自动生成(使用msbuild命令)'MyServicewsdl.aspx'& "MyServicedisco.wsdl" ,必须将其放置在_vti_bin文件夹中.
And I want to automatically generate (using msbuild commands) the 'MyServicewsdl.aspx' & 'MyServicedisco.wsdl' which must be placed in the _vti_bin folder.
也许我缺少了一些东西?
svcutil.exe的输出是:
Maybe I'm missing some things?
Output from svcutil.exe is:
bin\Debug>SvcUtil.exe MyWebService.dll
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152]
Copyright (c) Microsoft Corporation. All rights reserved.
Generating metadata files...
Warning: No metadata files were generated. No service contracts were exported.
To export a service, use the /serviceName option. To export data contracts, spe
cify the /dataContractOnly option. This can sometimes occur in certain security
contexts, such as when the assembly is loaded over a UNC network file share. If
this is the case, try copying the assembly into a trusted environment and runnin
g it.
推荐答案
我创建了一个工具,该工具可以从包含一个或多个WebServices的已编译c#程序集(dll)生成WSDL文件. 通常,您需要承载.asmx的运行服务(IIS或其他),以便可以使用/MyWebService.asmx?wsdl
I've created a tool which can generate a WSDL file from a compiled c# assembly (dll) which contains one or more WebServices. Normally you require a running service (IIS or other) which hosts the .asmx so that you can retrieve the WSDL using /MyWebService.asmx?wsdl
此工具使用反射生成WSDL文件,以从程序集(dll)中检索所有信息.
This tool generate a WSDL file using reflection to retrieve all information from an assembly (dll).
可以在 https://github.com/StefH/WSDLGenerator
这篇关于如何从C#Web服务生成WSDL文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!