Azure:应用程序服务:部署虚拟目录

时间:2018-10-19 17:43:10

标签: azure asp.net-core virtual-directory azureportal

我在azure网站上部署了一个asp.net核心应用程序,该域是www.somewebsite.org。我的web.config文件位于site \ wwwroot \ web.config下。其内容是

<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\App1.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout">
            <environmentVariables>
            </environmentVariables>
        </aspNetCore>
  </system.webServer>
</configuration>

我正在尝试使用虚拟路径www.somewebsite.org/kiosk部署另一个asp.net核心应用程序,并将完整目录复制到site \ wwwroot \ kiosk下,而web.config文件位于site \ wwwroot \ kiosk下\ web.config。其内容为:

<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>            
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />      
    </handlers>
      <aspNetCore processPath="dotnet" arguments=".\Kiosk.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>

在Azure门户上,在我的网站的“应用程序设置”中, /-网站\ wwwroot / kiosk-网站\ wwwroot \ kiosk

当我尝试访问www.somewebsite.org时,正确加载了app1网站。但是,当我访问www.somewebsite.org/kiosk时,信息亭应用未加载。该页面返回500内部服务器错误。如何解决此错误?甚至有可能在一个网站中将多个应用程序从单独的多个虚拟路径中托管在一个网站上吗?

2 个答案:

答案 0 :(得分:0)

我重现了您的错误,您只需要在<location path="." inheritInChildApplications="false">下的web.config文件中添加site\wwwroot\web.config

<configuration>
  <location path="." inheritInChildApplications="false">
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\App1.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout">
            <environmentVariables>
            </environmentVariables>
        </aspNetCore>
  </system.webServer>
</location>
</configuration>

答案 1 :(得分:0)

在我的子应用程序web.config文件中,我执行了以下操作,然后它开始工作:

<configuration>
    <system.webServer>
      <handlers>            
        <add name="aspNetCore_TEMP" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />      
    </handlers>
      <aspNetCore processPath="dotnet" arguments=".\Kiosk.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
    </system.webServer>

</configuration>

现在,两个站点都打开了。

感谢您的帮助。

NH