我正在使用ASP.NET Web API框架构建RESTful Web服务器应用程序。它有几个不同的控制器服务请求,但我遇到一个控制器在不同的机器上加载不一致的问题。控制器在两台开发机器和一台QA机器上正确加载,但不能在一台开发机器和另一台QA机器上加载。其他控制器在所有机器上正确加载,因此我们知道应用程序至少在某个级别上工作。更令人困惑的是控制器类的名称会改变它是否正确加载。原始设计要求将类命名为" XyzController",就我所知,它遵循所需的命名格式。如果我将控制器的名称更改为其他任何内容,例如" MyXyzController"或" XyzV2Controller",它被正确加载。当然我们可以重命名控制器,但我们真的很想找到这个问题的根本原因,所以我们不知道哪些机器名称会起作用。
我必须相信它正在处理的机器与它不是机器之间的配置/设置问题,但我无法想象会影响哪些配置框架能够加载" MyXyzController"但不是" XyzController"。操作系统,IIS和.NET版本之间似乎没有一致性。
我完全使用RoutePrefixAttributes和RouteAttributes指定路由,不允许框架决定路由,所以我不担心路由或类名之间的冲突。