搭建webapi相关配置
1.创建一个空的WebApi项目

2.安装help文档:
install-package Microsoft.AspNet.WebApi.HelpPage
3.注册help:
Global.asax==> AreaRegistration.RegisterAllAreas();
4.启用SetDocumentationProvider:
WebApplication/Areas/HelpPage/App_Start/HelpPageConfig.cs 目录下,找到下面代码,并取消注释(App_Data 改为 bin):

5. WebApplication Build 配置 XmlDocument 输出路径

6.如果需要配置swagger
1.Install-Package Swashbuckle
2.SwaggerConfig.cs修改配置
 protected static string GetXmlCommentsPath()
        {
            return System.String.Format(@"{0}\bin\WebApiSwagger.XML", System.AppDomain.CurrentDomain.BaseDirectory);
        }
3.c.IncludeXmlComments(GetXmlCommentsPath());注释打开
4.修改WebApplication Build 和步骤5一致。PS:如果用来HELP,需要将helpconfig里面的输出注释掉
7.Json格式输出:
Webapiconfig.cs里面config.Formatters.Remove(config.Formatters.XmlFormatter);
// 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式. config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 对 JSON 数据使用混合大小写。跟属性名同样的大小.输出 //config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
或者Action方法自己添加返回格式:
public IHttpActionResult GetLeading(string s_xiangmubh) { this.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver(); try { var apply = new ApplyMeterDAL(); var res = apply.GetLeading(s_xiangmubh); return this.Ok(new { code = 0, message = string.Empty, data = res.Select(p => new LeadingFormInfo { CaliberId = p.CaliberId, MeterModelId = p.MeterModelId, ProducerId = p.ProduceId, RequestNumber = p.Count }) }); } catch (Exception e) { return this.Ok(new { code = -1, message = e.Message,data=new List<LeadingFormInfo>() }); } }
8.Json跨域:
1.install-package Microsoft.AspNet.WebApi.Cors
2.WebApiConfig里面添加代码:config.EnableCors(new EnableCorsAttribute("*", "*", "*")); //需引用System.Web.Http.Cors
9.配置log4net
1. install-package log4net
2.Web.config里面添加
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
<log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\log" />
      <param name="AppendToFile" value="true" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd".txt"" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <logger name="Csm.Logger">
      <level value="ALL" />
      <appender-ref ref="RollingFile" />
    </logger>
  </log4net>
3.global.aspx里面注册
protected void Application_Start() { var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "Configs/log4net.config"); log4net.Config.XmlConfigurator.ConfigureAndWatch(logCfg); GlobalConfiguration.Configure(WebApiConfig.Register); }
10.webapi输出时间类型数据格式
//配置返回的时间类型数据格式 GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add( new Newtonsoft.Json.Converters.IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" } );
11.文件上传限制配置
maxRequestLength,maxAllowedContentLength允许文件上传大小多少的配置
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" maxRequestLength="2147483647"  />
    
  </system.web>
  <system.webServer>
     <security>
      <requestFiltering >
        <requestLimits maxAllowedContentLength="2147483647" ></requestLimits>
      </requestFiltering>
    </security>
 </system.webServer>
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号