asp.net-mvc – ASP.NET Web API错误:未找到与请求URI匹配的HTT
发布时间:2020-12-16 06:23:25 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试将Web API添加到现有的ASP.NET MVC项目中.这最初是一个ASP.NET MVC 2网站,后来升级到MVC 3,然后使用以下过程再次升级到MVC 4: Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3 Upgrading an ASP.NET MVC 3 Project to ASP.NET MVC 4 我的Ap
我正在尝试将Web API添加到现有的ASP.NET MVC项目中.这最初是一个ASP.NET MVC 2网站,后来升级到MVC 3,然后使用以下过程再次升级到MVC 4:
Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3 Upgrading an ASP.NET MVC 3 Project to ASP.NET MVC 4 我的Api控制器非常简单.实际上,它是默认模板: public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } } 我添加了一个类来注册de API路由. public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional } ); } } 这是从Application_Start调用的 protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); RouteConfig.RegisterRoutes(RouteTable.Routes); } 但是,当我尝试访问’localhost:50315 / api / values’时,我收到以下错误: <Error> <Message> No HTTP resource was found that matches the request URI 'http://localhost:50315/api/values'. </Message> <MessageDetail> No type was found that matches the controller named 'values'. </MessageDetail> </Error> 根据路由调试器,路由似乎正常工作,web api路由是“匹配当前请求”的第一个条目. 解决方法
请看下面的步骤 – 它可能没有给你一个正确的答案,但它会给你一个调试问题的方向.您可以逐个执行这些操作.
>确保您已执行以下操作: Install-Package Microsoft.AspNet.WebApi 这只是为了确保您拥有正确的DLLS. >您可以尝试的另一件事是在get的顶部添加一条路线. class ValuesController : ApiController { [System.Web.Http.Route("api/values")] public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } public string Get(int id) { return "value"; } } >禁用MvC路由进行调试.即 protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); } >启用GET动词. 我在我的项目下面给你作为参考. <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Headers" value="*" /> <add name="Access-Control-Allow-Methods" value="*" /> </customHeaders> </httpProtocol> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="WebDAV" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFramework64v4.0.30319aspnet_isapi.dll" preCondition="classicMode,bitness64" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET:如何更快地加载页面
- ASP.NET MVC是否使Web表单成为旧版平台?
- asp.net-web-api – Web API中的OData POST的媒体资源支持
- ASP.NET MVC:Application_Start和Url.Action
- asp.net-core – 无法从Client访问IdentityServer4 doc示例
- asp.net – 如何使用Forms身份验证将用户重定向到特定页面
- 在asp.net C#中读取表单变量的问题
- ASP.NET 判断微信浏览器
- 从旧的经典ASP页面设置301重定向到新的ASP.NET Webforms页面
- asp.net – 使用asp:GridView进行分页时是否需要重新检索数
推荐文章
站长推荐
热点阅读