protected StringCollection GetDiscoveryUrls()
{
// build list of discovery uris.
StringCollection discoveryUrls = new StringCollection();
string computerName = System.Net.Dns.GetHostName();
foreach (BaseAddress baseAddress in BaseAddresses)
{
UriBuilder builder = new UriBuilder(baseAddress.DiscoveryUrl);
int index = builder.Host.IndexOf("localhost", StringComparison.OrdinalIgnoreCase);
if (index == -1)
{
index = builder.Host.IndexOf("{0}", StringComparison.OrdinalIgnoreCase);
}
if (index != -1)
{
builder.Host = computerName;
}
discoveryUrls.Add(builder.ToString());
if (baseAddress.AlternateUrls != null)
{
foreach (Uri alternateUrl in baseAddress.AlternateUrls)
{
builder = new UriBuilder(alternateUrl);
switch (baseAddress.ProfileUri)
{
case Profiles.WsHttpXmlOrBinaryTransport:
case Profiles.WsHttpXmlTransport:
{
builder.Path += "/discovery";
break;
}
}
discoveryUrls.Add(builder.ToString());
}
}
}
return discoveryUrls;
}