我有一个使用.NET 5 beta-4构建并在IIS 8.5上运行的Web应用程序。
我想让IIS服务于所有静态文件,因此我删除了.NET 5静态文件中间件。这通常能够按预期正常工作。例如,/img/image.png
将通过IIS正确地进行服务。
然而,在我的.NET应用程序中,我有一个捕获所有路由("/{param?}"
),以满足业务需求。但是,我还有一些需要被服务的静态文件放置在我的Web根目录下,如:robots.txt
、favicon.ico
等。
我遇到的问题是:
IIS将Web根目录下的静态文件请求路由到.NET应用程序,然后运行捕获所有路由,最终导致404
错误。理想情况下,如果IIS找到了Web根目录中的静态文件,则我希望它可以直接服务于该文件。只有当找不到静态文件时,才将请求发送到.NET的捕获所有路由。
如何告诉IIS 8.5从Web根目录服务于静态文件,并且同时支持我的.NET 5应用程序中的捕获所有路由呢?