我在IIS上有一个简单的c#asp.net网站,其中包含:
Global.asax
Web.config
/bin
当我访问路线时,效果很好:
Mysite.com/api/test
我们将文件移动到了另一台IIS服务器,但无法访问路由。显示错误404。
静态文件已正确投放。
我们检查的事情:
AppPool版本为4.0,集成模式下的AppPool,处理程序映射 与旧服务器类似,IIS_IUSRS拥有对该文件夹的所有权限。
我缺少什么配置?
答案 0 :(得分:0)
启动IIS之前需要检查的内容:
POOL权限
POOL框架版本
文件夹权限-托管应用程序的文件夹必须具有IIS_IUSRS用户的权限
检查后,您的应用程序应运行或显示另一条错误消息。
插入一些打印屏幕以查看错误。
答案 1 :(得分:0)
检查您的App_Start文件夹中是否存在 WebAPIConfig 类。它看起来应该类似于以下内容:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
var settings = config.Formatters.JsonFormatter.SerializerSettings;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
settings.Formatting = Formatting.Indented;
settings.NullValueHandling = NullValueHandling.Include;
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
然后检查该类是否在您的 Global.asax 类中注册。应该有一个像这样的条目:
GlobalConfiguration.Configure(WebApiConfig.Register);
应在此行上方:
RouteConfig.RegisterRoutes(RouteTable.Routes);
答案 2 :(得分:0)