gpt4 book ai didi

asp.net - 我如何告诉 IIS 使用我的 .NET 应用程序中的底层包罗万象的路由从 Web 根目录提供静态文件?

转载 作者:行者123 更新时间:2023-12-04 20:37:57 25 4
gpt4 key购买 nike

我有一个使用 .NET 5 beta-4 构建并在 IIS 8.5 上运行的 Web 应用程序。

我希望 IIS 为所有静态文件提供服务,因此我删除了 .NET 5 静态文件中间件。这通常按预期工作。 /img/image.png例如,将通过 IIS 正确提供服务。

但是,在我的 .NET 应用程序中,我有一个用于业务需求目的的包罗万象的路由 ("/{param?}")。但我的 webroot 文件夹中还有一些静态文件需要提供( robots.txtfavicon.ico 等)。

我遇到的问题:
IIS 将 Web 根静态文件请求路由到 .NET 应用程序,然后该应用程序将运行捕获所有路由,这反过来将导致 404 .理想情况下,我希望 IIS 为 web 根目录中的静态文件提供服务,如果它找到一个。如果没有找到,则将请求发送到 .NET catch-all 路由。

我如何告诉 IIS 8.5 在我的 .NET 5 应用程序中使用底层包罗万象的路由从 Web 根目录提供静态文件?

最佳答案

虽然我同意使用中间件的想法,但如果你绝对想依靠你的网络服务器来提供静态文件而不接触你的应用程序,你可以设置依赖于文件的重写:

<rule name="Static Files" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{APPL_PHYSICAL_PATH}wwwroot\{R:1}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/{R:1}" />
</rule>

这应该检查您的请求是否是文件系统上的文件,以及它是否直接将您的请求重写为它并停止处理请求。

关于asp.net - 我如何告诉 IIS 使用我的 .NET 应用程序中的底层包罗万象的路由从 Web 根目录提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32014912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com