2013-01-21 29 views
0

我需要获取调用应用的URL,因为该服务会发送包含指向我应用的链接的电子邮件(例如,单击此处查看表单)。如何在WCF netTcpBinding窗口服务中获取调用者的URL?

我正在考虑在应用程序的服务器上对应用程序的URL进行硬编码,但在本地工作时,本地主机端口有时会发生变化。另外,当部署到不同的测试环境时,我将不得不更改URL。此外,与他人合作也会造成轻微问题。

最好的解决方案是动态确定它。其次,web.config。第三好:硬编码。

如何解决此问题并获取调用应用的网址?

编辑:从客户端发送url是不可能的,因为服务有定时事件来发送电子邮件通知。

+1

是否调用者必须拥有一个URL?如果您需要URL,请让主叫方将其发送给您。 –

+0

可能的重复的[我可以得到WCF调用者URL ...?](http://stackoverflow.com/questions/4147636/can-i-get-the-wcf-caller-url) – Useless

回答

1

也许IP能帮

尝试这一行

((RemoteEndpointMessageProperty)OperationContext.Current.IncomingMessageProperties[RemoteEndpointMessageProperty.Name]).Address; 

这篇文章可以在很长的路要走 http://keyvan.io/detect-client-ip-in-wcf-3-5

编辑

获取URL帮助是不可能的,

相似这里的问题 Can I get the WCF Caller Url...?

+0

IP将如何帮助?我需要一个类似于http://www.myapp.com/forms?formId=123的链接。我只需要知道链接的www.myapp.com/部分。 – Lifes

+0

以及在这种情况下得到的URL是不可能的 类似的问题在这里http://stackoverflow.com/questions/4147636/can-i-get-the-wcf-caller-url –

+0

我觉得一样多:谢谢。你能否在正式答案中提出这个问题,我会将其标记为正确的。 – Lifes