6

我有一个 asp.net mvc 网站,我想将其部署到 Azure(最好通过 GitHub 部署),以便将其作为主域的子文件夹进行访问。

例如 http://example.com/mymvcsite/

理想情况下,我希望网站在子文件夹下完全独立。好像它被配置为一个很好的老式 IIS 应用程序文件夹。即我不想为 mydomain.com 建立一个域 mvc 网站,它恰好在 /mymvcsite/ 子文件夹路径下完成所有业务。

我很高兴整个网站都托管在 Azure 上,让这个特定项目存在于子文件夹下才有意义。

今天我一直在努力和谷歌搜索,试图弄清楚如何解决这个问题,却一无所获。

4

3 回答 3

6

如果您使用 Web 部署发布方法,您可以在站点名称中设置mydomain/mymvcsite而不是mydomain. 至少它适用于我的默认 windows azure 站点http://mydomain.azurewebsites.net/mymvcsite

或者您可以使用 FTP 发布方法。

于 2013-12-28T19:56:01.960 回答
6

您只需转到 azure 的控制面板并添加虚拟目录路径即可。

请访问这个 MDSN 博客,看看它是如何完成的。

http://blogs.msdn.com/b/kaushal/archive/2014/04/19/microsoft-azure-web-sites-deploying-wordpress-to-a-virtual-directory-within-the-azure-web-网站.aspx

于 2014-11-01T04:59:45.447 回答
0

基本上,这需要执行以下步骤才能使其正常工作。

解决方案包含

i) sampleApp.API(.Net Core Web API)

ii)sampleApp.UI( Angular 应用程序)

为两个应用程序设置 Azure 门户

1) 在 azure 门户中转到您的 Web 应用程序 -> 设置 -> 配置

2)选择路径映射并在此处为子站点创建新的映射条目。添加此条目时不要选择目录复选框以将其保留为虚拟应用程序类型。单击保存

 **Virtual Path:** /{folderName}            **physicalPath:**  /site/wwwroot/{folderName} 

3)现在转到VS2017右键单击您的API项目并单击发布

4)在发布设置窗口中将路径设置为

site name : existing + "/{folderName} "
DestinationUrl : existing + "/{folderName} "

5) 现在 ng-build --prod 您的 Angular 应用程序并部署 dist/clientApp 文件夹并使用根路径发布。

所以现在两者都应该作为

angular app https://{AzureAppName}.azurewebsites.net

Web API https://{AzureAppName}.azurewebsites.net/{folderName}/api/{controllerName}/{action}

如果用户在访问 api 项目时仍然面临“无法从 web.config 读取配置数据”问题

为此,在您的 API 项目中转到 startup.cs 并将配置函数更改为具有以下代码行

app.Map('/{folderName}', app1 => Configure1(app1, loggerFactory);

并在名为 configure1 的配置函数的空白副本中创建并重新部署您的 API 项目,如上所述。

public void Configure1(IApplicationBuilder app, ILoggerFactory loggerFactory)
        {
            //keep it blank
        }
于 2020-01-30T13:44:28.920 回答