【发布时间】:2013-09-20 20:14:31
【问题描述】:
我有一个 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 以识别两条路由?
【问题讨论】:
标签: asp.net-mvc-4 asp.net-web-api asp.net-mvc-routing