using System;
using System.Collections;
using System.Data;
using System.Net;
using Microsoft.Uddi;
using Microsoft.Uddi.Binding;
using Microsoft.Uddi.Business;
using Microsoft.Uddi.Service;
using Microsoft.Uddi.ServiceType;
using System.Xml;
namespace UddiDemoPublisher
{
public class UddiPublish
{
BEGIN COMMENT LINE
///
/// Эта утилита регистрирует web-службу в реестре UDDI
///
END COMMENT LINE
[STAThread]
public static void Main(string[] args)
{
try
{
Console.Write(«Укажите имя системы»
+ «UDDI Services: «);
string uddiMachineName = Console.ReadLine();
Console.Write(«Username: «);
string username = Console.ReadLine();
Console.Write(«Password: «);
string password = Console.ReadLine();
Console.Write(«Domain: «);
string domain = Console.ReadLine();
NetworkCredential credentials = new NetworkCredential(username,
password, domain);
Publish.Url = «http://» + uddiMachineName + «/uddi/publish.asmx»;
Publish.HttpClient.Credentials = credentials;
Inquire.Url = «http://» + uddiMachineName + «/uddi/inquire.asmx»;
Inquire.HttpClient.Credentials = credentials;
BEGIN COMMENT LINE
// Если существует провайдер службы, удаляем его
END COMMENT LINE
FindBusiness fb = null;
BusinessList bl = null;
Console.Write(«Введите имя провайдера службы»
+ «для которого нужно ввести Web-службу: «);
string serviceProvider = Console.ReadLine();
fb = new FindBusiness();
fb.Name = serviceProvider;
try
{
bl = fb.Send();
}
catch (UddiException e)
{
Console.WriteLine(«UDDI exception: « + e.Number + « — «
+ e.Message);
return;
}
catch (Exception e)
{
Console.WriteLine(«General exception: «
+ e.Message);
return;
}
if (bl.BusinessInfos.Count > 0)
{
DeleteBusiness db = new DeleteBusiness();
db.BusinessKeys.Add(
bl.BusinessInfos[0].BusinessKey);
try
{
DispositionReport drep = db.Send();
Console.WriteLine(«Disposition report: «
+ drep.Results[0].ErrInfo.ErrCode.ToString());
}
catch (UddiException e)
{
Console.WriteLine(«UDDI exception: « + e.Number + « — «
+ e.Message);
return;
}
catch (Exception e)
{
Console.WriteLine(«General exception: « + e.Message);
return;
}
}
BEGIN COMMENT LINE
// Создаем провайдера службы
END COMMENT LINE
SaveBusiness sb = new SaveBusiness();
sb.BusinessEntities.Add();
sb.BusinessEntities[0].Name = serviceProvider;
BEGIN COMMENT LINE
// Create the Service
END COMMENT LINE
sb.BusinessEntities[0].BusinessServices.Add();
Console.Write(«Please enter a name for the web service: «);
string webServiceName = Console.ReadLine();
sb.BusinessEntities[0].BusinessServices[0].Name = webServiceName;
BEGIN COMMENT LINE
// Создаем связывание
END COMMENT LINE
sb.BusinessEntities[0].BusinessServices[0].BindingTemplates.Add();
Console.Write(«Please enter a full URL for the web service: «);
string webServiceUrl = Console.ReadLine();
sb.BusinessEntities[0].BusinessServices[0].BindingTemplates[0].AccessPoint.Text = webServiceUrl;
sb.BusinessEntities[0].BusinessServices[0].BindingTemplates[0].AccessPoint.URLType =
Microsoft.Uddi.Api.URLTypeEnum.Http;
BEGIN COMMENT LINE
// Отправляем UDDI
END COMMENT LINE
try
{
BusinessDetail bd = sb.Send();
// show xml
Console.WriteLine(bd);
}
catch (UddiException ue)
{
Console.WriteLine(ue.Message);
return;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return;
}
}
catch (Exception e)
{
Console.WriteLine(«General exception: « + e.Message);
}
}
}
}