WCF 3.5找到客户端用于访问服务的URL(服务器端)

时间:2012-05-16 10:50:27

标签: wcf

我正在尝试找到客户端用于访问服务器的URL(在服务器端)。我尝试过以下方法:

Uri url = OperationContext.Current.Channel.RemoteAddress.Uri;
Uri url = OperationContext.Current.Channel.Local.Uri;
Uri url = OperationContext.Current.EndpointDispatcher.EndpointAddress.Uri;

但这些似乎都没有正常工作。它们都返回服务器名称(使用完全限定的域名。例如myserver.mydomain.local。即使我使用了myserver / myservice.svc,它也会得到全名。

此时我没有可用于测试的服务和域来访问mywebsite.com/myservice.svc以查看它是否具有计算机名称。

我想得到的结果(来自服务器):

http://mywebsite.com/myservice.svc

而不是

http://myserver.mydomain.local/myservice.svc

这是目前似乎正在发生的事情。

2 个答案:

答案 0 :(得分:0)

如果您有权访问HttpContext,则可以使用HttpContext.Current.Request.Url.ToString()

答案 1 :(得分:0)

OperationContext.Current.IncomingMessageHeaders.To

应该给客户端用来连接服务器的Uri。