将ASP.net MVC网站部署到Azure网站的子文件夹中?

时间:2013-02-20 15:02:32

标签: .net asp.net-mvc azure azure-web-sites

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

e.g。 http://example.com/mymvcsite/

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

我很高兴整个网站都可以在Azure上托管,这个特定项目只适用于子文件夹。

我今天一直在苦苦挣扎和谷歌搜索,试图弄清楚如何解决这个问题并且空白。

3 个答案:

答案 0 :(得分:5)

您可以转到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-site.aspx

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

解决方案包含

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

ii)sampleApp.UI(Angular应用)

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

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

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

 OkHttpClient.Builder().apply {
        interceptors().addAll(UnAuthorizedInterceptor()))
        readTimeout(30, TimeUnit.SECONDS)
        connectTimeout(30, TimeUnit.SECONDS)
    }.build()

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

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

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

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

所以现在两个都应该像

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

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

为此,请在API项目中转到startup.cs并更改configure函数以使其具有以下代码行

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

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

并使用名称configure1在configure函数的空白副本中创建并如上所述重新部署您的API项目。

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