首页 > Windows开发 > 详细

webapi2的一些坑

时间:2020-05-25 14:26:40      阅读:65      评论:0      收藏:0      [点我收藏+]

 估计最坑人的坑是visual studio导致的,用IISExpress 调试的时候,设置的ProjectUrl,如果修改,就没那么容易如你所愿了。

1. Webapi的url设置在项目属性里的ProjectUl里,假如url为http://localhost:53430

技术分享图片

 

 

如果你的api配置如下(本文用的webapi2.0, netframework 4.5.1, system.Web.Mvc 是5.0.0):..\App_Start\WebApiConfig.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace StudioProcessService
{
    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: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

则你的实际请求的api的url地址为:http://localhost:53430/api/StudioProcessFile/Transfer

其中api是框架自动添加的,估计跟上面的webapi的路配置有关系。

StudioProcessFile 就是controller的类名,Transfer是函数名称。

namespace StudioProcessService.RestApi
{
    //[WebApiActionFilter]
    [RoutePrefix("api/StudioFileProcess")]
    public class StudioFileProcessController : ApiController, 
    {

        [HttpPost]
        public VOID Transfer(StudioProcessRequest request)
        {
......

.

如果修改ProjectUrl, 有时提示啥build virtual directory。 但是实际上,可能你的URL还是没有修改成功。

解决办法是,删除C:\Users\{User}\Documents\IISExpress 目录, 不用担心。删除以后,挂壁vs,然后重新打开,vs可自动再创建该目录,此时文件完成初始化,新的URL可能会生效了。

在上面的目录下有个ApplicationHost.config文件,定义了很多Express调试的参数,可以好好研究一下。

 

webapi2的一些坑

原文:https://www.cnblogs.com/dusf/p/12956514.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!