我正在尝试找到客户端用于访问服务器的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
这是目前似乎正在发生的事情。
答案 0 :(得分:0)
如果您有权访问HttpContext
,则可以使用HttpContext.Current.Request.Url.ToString()
。
答案 1 :(得分:0)
OperationContext.Current.IncomingMessageHeaders.To
应该给客户端用来连接服务器的Uri。