如何在托管多个网站的系统上查找本地主机地址

时间:2012-04-21 21:33:05

标签: asp.net-mvc-3 localhost scheduled-tasks

我正在制作一个需要每30分钟运行一次动作的ASP.NET应用程序,并在满足某些条件时发送电子邮件。我已经在托管站点的系统上安排了Windows任务,以运行一个程序,该程序将使用[LocalOnly]属性发布到该操作。当我在开发期间进行测试时,这很好,因为我可以将请求发送到http:// localhost:[Port] / [Controller] / [Action]。但是,一旦我部署了站点,使用请求的公共域名会导致它通过互联网路由,这意味着IP不再是本地的,这会导致操作失败。

有没有办法在本地提交此请求?我希望有一些方法可以找出我可以使用的本地主机地址,而不是网站的公共域名或IP。

...或者有更好的方式每隔30分钟发送一次电子邮件吗?

1 个答案:

答案 0 :(得分:0)

您可以通过在IIS中的部署服务器上创建唯一的端口绑定来执行此操作。

将此端口号存储在您正在运行的服务的某种配置中(或将其作为命令行参数传递给您的计划任务)。

更新您对http://127.0.0.1:[PortThatWasPassedIn]/[Controller]/[Action]的电话。

希望这会有所帮助,欢呼。