Basierend auf unter pic, kann es mit mehreren Diensten mehrere Website auf IIS sein,Get Hostname in WCF auf IIS
So ist die einzige Sache, die ich trennen sie haben von zusammen ist Hostname
, in der andere Website Geschwister Dienste rufen können zusammen so habe ich mich entschlossen hostname
zu ändern, wenn sie nicht auf localhost sind so in Service, den ich so etwas wie dies versucht:
HostName = OperationContext.Current.Channel.LocalAddress.Uri.Host.ToString();
und in Dienst, wenn ich rufe ein anderer Dienst von Proxy es den I Rehome
public void ReHome(string hostName)
{
if (!string.IsNullOrEmpty(hostName))
{
if (this.Endpoint.Address.Uri.DnsSafeHost.ToLower().Equals("localhost"))
{
string newAddress = string.Format("{0}://{1}{2}/{3}", Endpoint.Address.Uri.Scheme
, hostName, string.IsNullOrEmpty(Endpoint.Address.Uri.Port.ToString()) ? string.Empty : ":" + Endpoint.Address.Uri.Port.ToString()
, Endpoint.Address.Uri.AbsolutePath);
this.Endpoint.Address = new EndpointAddress(newAddress);
}
}
}
Aufruf Beispiel in einem Service:
using (var hisProxy = new HISIntegrationClient("hisIntegrationEndPoint", Internals.SYSTEM))
{
hisProxy.ReHome(HostName);
....
}
so ist OperationContext.Current.Channel.LocalAddress.Uri.Host
mir geben, was ich, dass die oben erwähnten pic wollen?
Lassen Sie mich es überprüfen, was ist der Unterschied zwischen ihnen? – Aria
Nop ich vor ein Problem, wenn Hostnamen in IIS festgelegt, Service-Operation wird nicht zugegriffen werden, werde ich das Feedback zurück ... – Aria
Es funktionierte, gab es mir Hostname, aber mein Code 'OperationContext.Current.Channel.LocalAddress.Uri .Host.ToString() 'gib mir auch wirklich Hostname. – Aria