【问题标题】:Invoking MVC Controller inside Azure worker在 Azure Worker 中调用 MVC 控制器
【发布时间】:2013-10-07 11:10:52
【问题描述】:

我不确定我是否正确地处理了这个问题。我有一个需要定期调用的 MVC 控制器操作。我正在尝试使用 Quartz.net 创建一个调度程序,然后我需要在我的工作人员中运行该调度程序。如何在我的工作角色中访问我的 MVC 控制器操作?

【问题讨论】:

    标签: asp.net-mvc azure azure-worker-roles


    【解决方案1】:

    您可以从辅助角色向操作的路由 URL 发出 HTTP 请求。

    using (var httpClinet = new HttpClient())
    {
        var result = httpClient.DownloadString("http://www.site.com/path/to/action");
    }
    

    更新

    ...我如何在工作角色中获取当前 url?因为网址 会根据部署的位置而变化...

    一种方法是将可变 URL 段存储在您的辅助角色的 ConfigurationSettings 中。

    <Role name="My.WorkerRole">
        ...
        <ConfigurationSettings>
            <Setting name="UrlScheme" value="https" />
            <Setting name="UrlHost" value="www.site.com" />
            <Setting name="UrlPath" value="path/to/action?param1=value1" />
        </ConfigurationSettings>
        ...
    </Role>
    
    using (var httpClinet = new HttpClient())
    {
        var url = string.Format("{0}://{1}/{2}",
            RoleEnvironment.GetConfigurationSettingValue("UrlScheme"),
            RoleEnvironment.GetConfigurationSettingValue("UrlHost"),
            RoleEnvironment.GetConfigurationSettingValue("UrlPath"));
        var result = httpClient.DownloadString(url);
    }
    

    然后,您可以在部署之前更改 ServiceConfiguration.Cloud.cscfg 文件中的值。

    【讨论】:

    • 那太好了。知道如何在工作者角色中获取当前 url 吗?因为 url 会根据它的部署位置而改变......
    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2019-08-09
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多