我目前有两个控制器。一个是MVC,另一个是WebApi控制器。 我已经使用以下设置在IIS服务器上轻松发布了这两个:
WebApiConfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
RouteConfig:
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控制器,但出于某种原因,在发布时我可以 STILL 通过HTTP GET请求调用WebApi!即使它已经消失了!
OTOH,它在调试模式下工作正常。
这里发生了什么?
编辑:似乎问题不在我的代码中,而是在VS'发布功能中。它始终始终工作。我不得不手动将文件复制到服务器,这不是所谓的“一键发布”。其他类似的SO问题似乎表明它是一个VS错误,在SP2中仍然没有修复。