Я новичок в разработке веб-служб и клиент-серверных приложений, и у меня возникают проблемы с пониманием того, как файл WSDL генерируется из веб-службы c #.
Мне нужен файл WSDL, чтобы сгенерировать прокси-класс и связать его с соответствующим клиентом.
class my_server
{
private static HttpChannel channel;
private static int port = 3000;
private static string serverUri = "myservice";
static void Main(string[] args)
{
Console.WriteLine("Sample server");
StartSoapServer(port);
Console.ReadLine();
StopSoapServer();
}
private static bool Start(int p)
{
try
{
port = p;
channel = new HttpChannel(port);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
RemotingConfiguration.RegisterWellKnownServiceType(typeof(server), serverUri, WellKnownObjectMode.Singleton);
IServerChannelSink sinkChain = channel.ChannelSinkChain;
Console.WriteLine("server created");
}
catch (Exception e)
{
return false;
}
return true;
}
private static void Stop()
{
string[] urls = channel.GetUrlsForUri(serverUri);
if (urls.Length > 0)
{
string objectUrl = urls[0];
string objectUri;
string channelUri = channel.Parse(objectUrl, out objectUri);
ChannelServices.UnregisterChannel(channel);
Console.WriteLine("Server stopped");
}
}
public class server : MarshalByRefObject
{
public server()
{
}
public override object InitializeLifetimeService()
{
return null;
}
public bool initialise()
{
Console.WriteLine("initialise()");
return true;
}
public bool ping()
{
Console.WriteLine("ping");
return true;
}
}
}
Судя по всему, сервер создан и остается включенным до его остановки ... однако при тестировании с помощью Storm (http://storm.codeplex.com/): при добавлении http://localhost:3000/myserviceuri
происходит сбой ... как еще можно проверить, что служба работает, без реализации клиента? как я могу сгенерировать файл WSDL с этого сервера?
Я пытался использовать http://wsdlgenerator.codeplex.com/, но, видимо, это только для служб WCF ...