J'ai créé un WebService comme celui-ci:
[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...
}
}
Est-il possible de générer un fichier WSDL pour ce code sans se connecter à un service en cours d'exécution? J'ai cherché et j'ai trouvé des informations sur SvcUtil.exe & wsdl.exe , mais ceux-ci fonctionnent uniquement lors de la récupération du WSDL à partir d'un WebService en cours d'exécution.
(Pour Java , il existe un outil appelé Java2wsdl , y a-t-il un équivalent pour c # ?)
: Mise à jour:
Le contexte de cette question est que je souhaite ajouter un nouveau CustomWebService à SharePoint qui doit être déployé à l'aide de WSPBuilder dans le dossier _vti_bin sur SharePoint. Voir aussi mon message sur SharePoint.SE.
Et je veux générer automatiquement (en utilisant les commandes msbuild) le 'MyServicewsdl.aspx' & 'MyServicedisco.wsdl' qui doit être placé dans le dossier _vti_bin.
Peut-être que certaines choses me manquent? La sortie de svcutil.exe est:
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.
J'ai créé un outil qui peut générer un fichier WSDL à partir d'un assemblage c # compilé (dll) qui contient un ou plusieurs services Web. Normalement, vous avez besoin d'un service en cours d'exécution (IIS ou autre) qui héberge le .asmx afin que vous puissiez récupérer le WSDL en utilisant /MyWebService.asmx?wsdl
Cet outil génère un fichier WSDL à l'aide de la réflexion pour récupérer toutes les informations d'un assembly (dll).
Le téléchargement peut être trouvé à https://github.com/StefH/WSDLGenerator
Voir svcutil /?
-= METADATA EXPORT =-
Description: svcutil.exe can export metadata for services, contracts and data types in compiled assemblies. To
export metadata for a service, you must use the /serviceName option to indicate the service you would like
to export. To export all Data Contract types within an Assembly use the /dataContractOnly option. By
default metadata is exported for all Service Contracts in the input assemblies.
Syntax: svcutil.exe [/t:metadata] [/serviceName:<serviceConfigName>] [/dataContractOnly] <assemblyPath>*
<assemblyPath> - The path to an Assembly that contains services, contracts or Data Contract types to be
exported. Standard command-line wildcards can be used to provide multiple files as input.
Options:
/serviceName:<serviceConfigName> - The config name of a service to export. If this option is used, an
executable Assembly with an associated config file must be passed as
input. Svcutil will search through all associated config files for the
service configuration. If the config files contain any extension types,
the assemblies containing these types must either be in the GAC or
explicitly provided using the /r option.
/reference:<file path> - Add the specified Assembly to the set of assemblies used for resolving
type references. If you are exporting or validating a service that uses
3rd-party extensions (Behaviors, Bindings and BindingElements) registered
in config use this option to locate extension assemblies that are not in
the GAC. (Short Form: /r)
/dataContractOnly - Operate on Data Contract types only. Service Contracts will not be
processed. (Short Form: /dconly)
/excludeType:<type> - The fully-qualified or Assembly-qualified name of a type to exclude from
export. This option can be used when exporting metadata for a service or a
set of service contracts to exclude types from being exported. This option
cannot be used with the /dconly option. (Short Form: /et)
Svcutil.exe générera certainement le WSDL avec le service arrêté. L'utilisation correcte est svcutil your.executable.dll (exe). J'utilise beaucoup cela, donc je suis sûr que cela générera le WSDL.