How do I get WSDL file from a running service?
11,331
have you tried localhost:1234/IOrderExecutor/?wsdl
try this it may works
Author by
Arsen Zahray
Updated on June 17, 2022Comments
-
Arsen Zahray almost 2 years
Here's how I start my web service:
try { //load the shedluer static constructor ServiceHost svh = new ServiceHost(typeof(OrderExecutor)); var tcpbinding = new NetTcpBinding(SecurityMode.None); //remove limits on the max array size var httpLocation = "http://" + address + ":1234"; svh.AddServiceEndpoint(typeof(IOrderExecutor), new WSHttpBinding(SecurityMode.None), httpLocation); ServiceMetadataBehavior smb = svh.Description.Behaviors.Find<ServiceMetadataBehavior>(); if (smb == null) smb = new ServiceMetadataBehavior(); smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15; svh.Description.Behaviors.Add(smb); // Add MEX endpoint svh.AddServiceEndpoint( ServiceMetadataBehavior.MexContractName, MetadataExchangeBindings.CreateMexHttpBinding(), httpLocation + "/mex" ); svh.Open(); Console.WriteLine("Service mounted at {0}", httpLocation); Console.WriteLine("Press Ctrl+c to exit"); var re = new ManualResetEvent(false); re.WaitOne(); svh.Close(); } catch (Exception e) { Console.WriteLine("Exception"); Console.WriteLine(e); }
The service starts and works ok, Visual studio can connect to it and create a working client.
But, I need a WSDL file to make it inter-operate with PHP.
I've tried
http://localhost:1234?wsdl http://localhost:1234/IOrderExecutor?wsdl http://localhost:1234/IOrderExecutor.wsdl
without any success.
I've also tried
svcutil /serviceName:IOrderExecutor order-executor.exe
With following result:
Warning: Unable to load a service with configName 'IOrderExecutor'. To export a service provide both the assembly containing the service type and an executab le with configuration for this service. Details:Either none of the assemblies passed were executables with configura tion files or none of the configuration files contained services with the config name 'IOrderExecutor'. 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.
How do I get a WSDL file from a running WCF service?
-
Seng Cheong about 11 years
-
Arsen Zahray about 11 yearsNo result for localhost:1234/IOrderExecutor.asmx?WSDL either
-
Admin about 11 years@ArsenZahray than is something wrong. "...asmx?wsdl" sould be if you have deployed properly
-
Arsen Zahray about 11 yearsany idea what could be wrong here?
-
Silvermind about 11 yearsThe wsdl could also be
.svc?wsdl
instead of.asmx?wsdl
and you should use the service name instead of the interface. -
Arsen Zahray about 11 yearsI've set httpLocation = "http://" + address + ":1234/myservice"; and tried localhost:1234/myservice.svc?wsdl and localhost:1234/myservice.asmx?wsdl. In both cases I've got 503 (sevice unavaliable). localhost:1234/myservice?wsdl is avaliable and returns empty page
-
Silvermind about 11 yearsCould you try to only open
http://localhost:1234
and then browse to the service listed there? -
insomnium_ about 11 yearsDid you tried to use your mex endpoint? MEX = metadata exchange, I could be wrong, but metadata is passed as WSDL. localhost:1234/mex
-
Arsen Zahray about 11 yearsthe service does create mex endpoint. At the end I solved the issue by using visual studio to connect to it and create client endpoint. Among the files for the client endpoint, there was the wdsl file.
-
-
FDinoff about 11 yearsHow does this answer the question?
-
Bomberlt over 10 yearsWhoa, I've tried /wsdl ?wsdl /mex?wsdl /mex/wsdl /basic?wsdl /basic/wsdl (i have two endpoints, <endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange" /> and <endpoint address="basic" binding="basicHttpBinding" name="Basic" contract="MyService" />) and didn't tried /?wsdl.. WTF. Thanks for help.