2012-05-16 129 views
1

我正在尝试查找客户端用来访问服务器的URL(服务器端)。我试过以下内容:WCF 3.5找到客户端用于访问服务的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

Jon。我也有同样的问题。这个问题已经解决了吗? – OammieR

+0

Jon,@ OammieR,你是如何解决问题的? – KumarHarsh

+0

[在WCF REST服务中获取原始请求url]可能的重复(http://stackoverflow.com/questions/9110397/get-original-request-url-in-wcf-rest-service) – Josh

回答

0

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

0

OperationContext.Current.IncomingMessageHeaders.To

应该给URI,它使用的客户端连接到服务器。