我们目前有一个旧的传统WCF服务,我真的不想维护,但仍有几个客户端可以访问。我们目前在Azure的WEB API 2中运行所有的API服务。要启用向后兼容性我希望使用路由属性,像这样来模拟网络API的WCF路由:在WEB API中模拟WCF路由2
[RoutePrefix("registration.svc")]
public class RegistrationDeprecatedController : ApiController
{
[HttpPost]
[Route("login")]
public async Task<HttpResponseMessage> Login(CredentialModel creds)
{...
本地运行,这就像一个梦。只要我发布到Azure AppService,但是我得到的所有内容都是404未找到。具体路线问题:
/registration.svc/login
我怀疑是IIS主机有.svc路由文件关联处理请求作为WCF调用。在线广泛的搜索未能找到任何有关如何改变这种关联的信息,甚至无法确认是否属实。任何想法如何解决或替代解决方案将不胜感激。
更新
找到了解决办法,但它并不完美。发现可以直接连接到AppService实例上的IIS并更改处理程序映射。这并不完美,因为创建新实例或部署插槽时需要手动更改,我宁愿将整个过程自动化。
如果其他人想这样做,你可以按照benjamin perkins的教程。我确实需要在Windows 10上安装一个IIS Manager for remote administration扩展,但为了这个工作。我删除了与* .svc关联的所有映射,并且路由正在工作。
为该特定路径添加处理程序,以便在iis可以处理它之前拦截它 – Nkosi