我目前有两个控制器。一个是 MVC,另一个是 WebApi 控制器。我已经通过以下设置在 IIS 服务器上轻松发布了这两个:
WebApiConfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
路由配置:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "MVCControllerName", action = "MVCControllerName", id = UrlParameter.Optional }
);
现在我添加了另一个 WebApi 控制器,但是当发布时,网络服务器说:
未找到与请求 URI 匹配的 HTTP 资源
http://example.com/folder/api/Other?id=45&text=bla
实施OtherController
:
public void Get(int id, string text)
{
// something simply gets commited to the DB
}
此外,发布时发生了一些奇怪的事情......我已经从解决方案中删除了第一个 WebApi 控制器,但由于某种原因,在发布时我仍然可以通过HTTP GET 请求调用该 WebApi!虽然已经过去了!
OTOH,它在调试模式下工作正常..
这里发生了什么?
编辑:似乎问题不在于我的代码,而在于 VS 的发布功能。它一直有效到现在。我不得不手动将文件复制到服务器,这不是所谓的“一键发布”。其他类似的 SO 问题似乎表明它是一个在 SP2 中仍未修复的 VS 错误。