2

我目前有两个控制器。一个是 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 错误。

4

0 回答 0