Вот как я начинаю свой веб-сервис:Как получить WSDL-файл из текущей службы?
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);
}
запуска службы и работает нормально, Visual Studio может подключиться к нему и создать рабочий клиент.
Но мне нужен файл WSDL, чтобы он взаимодействовал с PHP.
Я попытался
http://localhost:1234?wsdl
http://localhost:1234/IOrderExecutor?wsdl
http://localhost:1234/IOrderExecutor.wsdl
без какого-либо успеха.
Я также попытался
svcutil /serviceName:IOrderExecutor order-executor.exe
С следующим результатом:
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.
Как получить WSDL-файл из запущенного сервиса WCF?
http://stackoverflow.com/questions/4860408/what-is-wsdl-uri-in-wcf –
Нет результатов для HTTP: // локальный: 1234/IOrderExecutor.asmx WSDL либо –
@ArsenZahray чем что-то не так. «... asmx? wsdl» может быть, если вы правильно разместили –