0

我有一个在 Azure 上运行的 .NET MVC 3、SQL Server 应用程序。它有 2 个 Web 角色实例和一个工作者角色实例。

我们允许客户将 iFrame 插入他们的网站以显示我们的内容。

要获取此内容,我们有一个接受公司唯一标识符的公共页面。例如,StackOverflow 将使用“ http://myapplication.com/stack-overflow ”。这将返回一个特定于公司的 html 页面。

我们喜欢将客户端的 CName 记录直接映射到我们应用程序上的内容的想法。据我了解,我们需要接受,在 StackOverflow 的情况下,“stack-overflow.myapplication.com”找到提取子目录并在“ http://myapplication.com/stack-overflow ”返回内容。

任何人都可以阐明这是如何在 Azure 上完成的吗?

4

1 回答 1

2

对于 Azure 和任何 IIS 部署的应用程序来说都是一样的。您只需将所有自定义子域作为 CNAME 映射到您的 cloudapp.net 域。不要更改服务定义和/或配置文件中的任何内容。对于您的应用程序,有一个简单的逻辑可以检查:

Request.Headers["host"]

此标头将具有完整的主机名(即 stack-overflow.myapplication.com)。您现在可以解析 URL,提取子域并将其映射到适当的资源。

另一种方法是使用 IIS 的 URL 重写模块并构建类似于我对 Apache Web Server 和 mod_rewrite 所做的事情(我认为正是您需要的)。我不确定您是否可以将我的 Apache 重写规则 1:1 用于 IIS 重写模块,但这将是一个很好的起点。请注意,现在(自 Azure SDK 1.3 起)在 Azure 完整 IIS 中默认启用 URL 重写模块)。

于 2012-01-31T10:05:34.767 回答