我有一个监听此网址的ASP.NET核心控制器:/banners/graphical/{imageName}
每当有新请求进入时,例如使用[imageName] img.jpg并且在文件系统上找不到名为"/banners/graphical/img.jpg"
的文件,控制器会从其他位置获取文件并将其放在文件系统上然后返回它。
如果文件已存在,则Web服务器将返回该文件而不调用控制器。这有效......在开发中...当Kestrel提供请求时它起作用,因为在app.UseStaticFiles()
之前调用了app.Mvc()
。默认情况下,当我使用Visual Studio中的IIS Express时...在生产IIS上我收到404错误。
我需要在生产IIS上使用哪些设置才能实现所需的功能?
这是我的Web.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>