如何从 IIS 上的 ASP.NET 6 中排除特定文件夹并允许它由 PHP 处理程序处理?
How to exclude a particular folder from ASP.NET 6 on IIS and allow it to process by PHP handlers?
我可以将 ASP.NET 6 网络应用程序部署到 Windows 2019 服务器上的 IIS。
一切正常。
默认web.config生成并存在根目录中:
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\TestWebApp.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
问题
我想要一个 /blog 文件夹,我想在那里部署一个 PHP 应用程序。
我如何向 IIS 解释不将这些请求传递给 AspNetCoreModuleV2 处理程序,而是将这些请求传递给 PHP 处理程序? (url 重写模块已经安装)
您可以在您的 webapp 站点下创建一个 Virtual Application
。
官方文档只有一段描述了这个虚拟应用程序。下面帖子里的回答很详细,对你有帮助。
Using ServerManager to create Application within Application
我给你的测试结果
本次在azure web app中测试,与IIS相同
我已结束使用 <location...>
元素并从博客路径中删除处理程序。
关键是删除博客子文件夹的处理程序,这可以通过 <remove>
完成。可以使用 <location...>
元素,或者将 web.config 放置到博客子文件夹,然后删除那里的处理程序。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\TestWebApp.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
<location path="blog">
<system.webServer>
<handlers>
<remove name="aspNetCore" />
</handlers>
</system.webServer>
</location>
</configuration>
我可以将 ASP.NET 6 网络应用程序部署到 Windows 2019 服务器上的 IIS。 一切正常。
默认web.config生成并存在根目录中:
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\TestWebApp.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
问题
我想要一个 /blog 文件夹,我想在那里部署一个 PHP 应用程序。 我如何向 IIS 解释不将这些请求传递给 AspNetCoreModuleV2 处理程序,而是将这些请求传递给 PHP 处理程序? (url 重写模块已经安装)
您可以在您的 webapp 站点下创建一个 Virtual Application
。
官方文档只有一段描述了这个虚拟应用程序。下面帖子里的回答很详细,对你有帮助。
Using ServerManager to create Application within Application
我给你的测试结果
本次在azure web app中测试,与IIS相同
我已结束使用 <location...>
元素并从博客路径中删除处理程序。
关键是删除博客子文件夹的处理程序,这可以通过 <remove>
完成。可以使用 <location...>
元素,或者将 web.config 放置到博客子文件夹,然后删除那里的处理程序。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\TestWebApp.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
<location path="blog">
<system.webServer>
<handlers>
<remove name="aspNetCore" />
</handlers>
</system.webServer>
</location>
</configuration>