【问题标题】:Is there a way to point a sub-directory of a web role deployment to an Azure web site?有没有办法将 Web 角色部署的子目录指向 Azure 网站?
【发布时间】:2012-12-13 20:56:50
【问题描述】:

我希望能够让我的 ASP.NET Web 应用程序在 Web 角色上运行以实现可伸缩性,并有一个指向 Azure 网站的子目录。像这样:

http://www.mysite.com -> 解析为我的网络角色部署。

http://www.mysite.com/blog -> 解析为部署在 Azure 上的 WordPress 网站。

我知道在虚拟机上我可以通过安装 WordPress 并将我的主站点下的虚拟目录指向 WordPress 应用程序的位置来做到这一点。我熟悉使用 ARR Web 场和 URL 重写在 IIS 中完成类似操作的能力,但这可以在 Azure Web 角色中完成吗?有没有更简单的方法? (比如使用一些非常棒的 Azure URL 重写工具)

【问题讨论】:

    标签: iis azure


    【解决方案1】:

    如果你使用 MVC,注册一个路由:

    routes.MapRoute(
        name: "Blog",
        url: "blog",
        defaults: new { controller = "Home", action = "Blog" }
    );
    

    并让控制器/动作重定向:

    public ActionResult Blog()
    {
        return Redirect("http://blog.com")
    }
    

    如果您使用网络表单,请将路由映射到重定向 aspx 页面,并在 Page_Load 中重定向。

    最后,您可以通过在 web.config 中包含如下内容来使用 URL 重写:

    <rewrite>
        <rules>
            <rule name="Blog">
                <match url="^.*/blog.*" />
                <action type="Rewrite" url="http://blog.com" />
            </rule>
        </rules>
    </rewrite>
    

    【讨论】:

    • 我无法进行重定向,因为我不希望 URL 在响应后更改。重写到另一个站点真的有效吗?我认为您需要 ARR 网络农场来做到这一点。我会试一试,但我必须先学习如何在 Azure Web 角色上的 IIS 中安装东西。
    • 如果您有 Web 角色,您可以 RDP 进入实例并安装到 IIS,但安装不会在角色更新后继续存在。您可以通过 powershell 添加安装任务,但这有点复杂。我认为你正在打一场巨大的艰苦战斗。我知道保持相同 URL(作为子目录)的唯一方法是将博客 iframe 放入父站点上的页面 - 这是一个糟糕的选择。
    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    相关资源
    最近更新 更多