问题#1:我有一个运行单个网站角色的经典云服务。我想区分本地调试的方式和部署到云的方式。具体来说,我希望本地站点在 HTTP 上运行,云服务在 HTTPS 上运行。这样做的主要原因是我们不想在所有开发人员的计算机上安装相同的证书。但是,端点是在公共(public)“ServiceDefinition.csdef”中定义的,而不是在两个“ServiceConfiguration.cscfg”文件(“local”和“cloud”)中定义的。那么,如何为本地和云设置不同的端点?
问题#2:我希望(尤其是在云中)有一个在 HTTP 上运行的站点,只需将用户重定向到 HTTPS 站点。我该如何设置?
我意识到这些问题可能没有足够的细节,但我不想写一本书。请随时要求澄清。
提前非常感谢!
最佳答案
部分回答您的问题:
Problem #2: I would like, especially in the cloud, to have a site running on HTTP that simply redirects the user to the HTTPS site. How would I set that up?
为此,您可以简单地依赖 web.config 转换。在 web.release.config 中,您可以设置重定向规则,将 http 请求重定向到 https。类似于以下内容:
<rewrite>
<rules>
<rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
类似的事情不会出现在您的 web.debug.config(或 web.config)中。
Specifically I would like the local site to run on HTTP and the cloud service to run on HTTPS.
为此,我过去在云服务领域工作时的处理方式基本上是为每个环境(WebApp.Azure.Dev、WebApp.Azure.Prod 等)创建单独的云项目。这样我就可以为每个环境获得单独的 csdef 文件。
关于Azure 经典云服务配置本地与云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59762124/