我有一个.NET 4.0“Web应用程序”又名“Web窗体”。在这个应用程序中,我有一个“Web API控制器类”和我的“Global.asax”
在Global.asax中我在“Application_Start”方法中有以下代码。
var config = GlobalConfiguration.Configuration;
config.Routes.MapHttpRoute(
name: "DefaultApi"
, routeTemplate: "api/{controller}/{id}"
, defaults: new { id = System.Web.Http.RouteParameter.Optional });
当我启动本地调试会话时,我可以正常使用我的路由。如果我输入“/ api / ZipCodes”,我会收到预期的JSON响应。
当我将项目发布到我的远程IIS服务器(发布方法:文件系统)时,该路由不再有效。我收到404错误。
我假设有一个设置或我需要在IIS上启用它以便识别和使用路由。
.NET应用程序池版本4.0
我的网站位于“C:\ inetpub \ hosts”以及其他7个以上的网站。没有使用路由。
有人有任何想法吗?
答案 0 :(得分:0)
您的主文件夹设置正确吗?因为那就是我今天发生的事情。 它应该指向应用程序的根文件夹,而不是服务器的根目录。
编辑:你能给我们你发布申请的文件夹吗?此外,如果您想知道如何设置“主文件夹”(服务器在发出请求时指向的文件夹,即:www.yoursite.com),请查看这个链接: https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a59a2665-9078-43ef-8b5a-5bf9bcacc95e.mspx?mfr=true
总结:
您必须设置“主文件夹”以指向应用程序的文件夹,或将应用程序文件设置为< strong>预设文件夹(认为它的名字是这样的: LocalDrive:\ Inetpub \ Wwwroot )
答案 1 :(得分:0)
如果您的IIS是最新的(我假设为7.0或更高版本),将应用程序池配置为用户框架4.0,则应该可以使用任何其他操作或配置。