代码之家  ›  专栏  ›  技术社区  ›  flipdoubt

如何在ASP.NET MVC应用程序的后台请求本地页?

  •  0
  • flipdoubt  · 技术社区  · 15 年前

    我的ASP.NET MVC应用程序需要在启动时定期在后台运行一组任务。我已经将每个任务实现为一个控制器操作,并在数据库中列出了该操作的应用程序相对路径。我实现了一个TaskRunner进程,该进程从数据库获取url,并使用WebRequest定期请求每个url UriFormatException . 我不能用 this answer 或者任何从 HttpContext.Current.Request 没有得到一个 HttpException System.Threading.Timer 按建议进行后台处理 here . 以下是我的问题:

    1. 即使使用ASP.NET中的静态依赖项,是否确实无法动态确定web应用的根路径?
    2 回复  |  直到 8 年前
        1
  •  1
  •   tvanfosson    15 年前

    您应该有权访问应用程序启动处理程序中的当前请求。您能不能在创建TaskRunner类时简单地注入所需的值,然后从那里重用它,而不是每次都尝试获取它们?

    protected void Application_Start()
    {
        ...
        var baseUri = this.Context.Request.Url.GetLeftPart( UriPartial.Authority );
        var runner = new TaskRunner( baseUri );
        runner.Run();
        ...
    }
    
        2
  •  0
  •   Dave Swersky    15 年前

    可以使ASP.NET MVC实现可由外部服务调用的RESTful API:

    http://omaralzabir.com/create_rest_api_using_asp_net_mvc_that_speaks_both_json_and_plain_xml/

    上面的文章讨论了JSON,但是您可以实现需要定期作为RESTful操作运行的任务,只需调用它们的uri即可执行这些任务。