我有一个 ASP.NET MVC/WebAPI 混合项目,它在 VS2012 开发服务器上运行得很好。它有一个标准的 MVC{controller}/{action}/{id}
路由,以及一个额外的 WebAPI 路由api/{controller}/{id}
。以 开头的请求/api/...
被定向到 WebAPI,其他请求被定向到普通 MVC。
当我将它部署到本地 IIS 时,正常的 MVC 路由正在工作。但是,/api
对 WebAPI 的调用会导致异常
Access to the path 'C:\inetpub\wwwroot\myapp\web.config' is denied.
然后我尝试在inetpub
文件夹及其子文件夹上设置适当的安全权限。这没有任何帮助,因为正常的 MVC 请求正在工作,我不怀疑问题与安全相关。
然后我启动了Sysinternals Process Monitor来查看w3wp.exe
请求期间在做什么。事实证明,IIS 在web.config
这里寻找:
C:\inetpub\wwwroot\myapp\api\web.config
C:\inetpub\wwwroot\myapp\api\mycontroller\web.config
当然,那里没有web.config
。
如何设置 IIS 以识别这两条路由?