zoukankan      html  css  js  c++  java
  • WebApi.Models.VersionHttpControllerSelector”的方法“SelectController”没有实现。

    背景交代:

       WebApi为了实现根据不同的版本,跳转不同的接口地址 ,重写了IHttpControllerSelector

    重写的类 类似于  https://www.cnblogs.com/tx720/p/7666356.html

    里面有一个SelectController方法,之前一直没报错

    /// <summary>
    /// 对应于自定义控制选择器的命名空间,
    /// 将从HTTP请求消息中获取命名空间和控制器
    /// 然后在字典中查找匹配的控制器
    /// </summary>
    /// <param name="request"></param>
    /// <returns></returns>
    public HttpControllerDescriptor SelectController(HttpRequestMessage request)
    {
    }

    今天更新接口的时候,本地未跑起来测试,而是编译通过后直接替换文件到服务器测试接口,结果一运行提示某dll找不到。

    按照以往的经验,我只是简单的在webconfig将

    System.Net.Http,从默认高版本,改为了提示错误的4.0.0.0

    又把System.Runtime,从默认高版本,改为了提示错误的 4.0.0.0

    改完后本地运行正常, 发布到服务器测试环境就提示   WebApi.Models.VersionHttpControllerSelector”的方法“SelectController”没有实现。

    而这个方法就没有更改过。然后就怀疑是否是引进了计划任务类导致冲突,本来准备去掉更新的任务计划相关代码后测试。

    后来就想试试看本地System.Net.Http和System.Runtime的实际版本

    结果一看发现本地版本都高于4.0.0.0   

    修改webconfig为本地版本后,本地正常,更新到服务器测试版本  运行正常,问题解决。

    <dependentAssembly>
            <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
          </dependentAssembly>

    后记:更新服务器接口时切记备份原来的文件,以防替换文件导致接口挂掉!!!(即使在本地正常, 也不能保证在服务器就一定正常)

      

  • 相关阅读:
    JavaScript优美的特性
    指尖初体验之主屏幕操作
    XHTML下css+div布局总结
    CSS表常用小技巧
    让两个DIV居中显示
    用CSS做滑动门
    CSS控制文本自动换行
    符合css规范的下拉菜单(兼容ff\ie6\ie7)
    层垂直居中于浏览器
    用css来强制按比例压缩图片的高度或宽度
  • 原文地址:https://www.cnblogs.com/yhnet/p/14804302.html
Copyright © 2011-2022 走看看