在VS中测试我的动作时,一切正常。
部署后,/ site / controller按预期响应(403),而/ site / controller / action以404响应。
从同一解决方案部署到同一根的其他api项目正在按预期工作。
每个项目都配置为IIS中的应用程序。
您能否告诉我如何处理或在此处添加哪些信息以澄清配置?
的Global.asax:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Web;
using System.Web.Http;
using System.Web.Routing;
namespace ssa
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("type", "json", new MediaTypeHeaderValue("application/json")));
GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(
new QueryStringMapping("type", "xml", new MediaTypeHeaderValue("application/xml")));
}
}
}
WebApiConfig.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace ssa
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
答案 0 :(得分:-1)
我不确定您是否需要在global.asax中注册所有路由,但请检查:
检查是否配置为运行目标.net版本的服务器,从服务器的角度来看,web api 1.0和2.0之间可能存在一些差异。