在IIS中发布ASP.NET Web API时不起作用?

时间:2018-12-19 09:32:41

标签: c# asp.net-web-api

当我从Visual Studio运行或浏览它时,我已经构建了一个ASP.NET Web API,但是当我在IIS中托管它并尝试浏览它时,它却无法正常工作,并给我以下错误:

  

HTTP 400错误不是您,而是此链接(它似乎已损坏)

在这里发布我的Web服务 enter image description here

API方法是

 [HttpGet]
    [Route("findall")]
    public HttpResponseMessage findAll()
    {
        try
        {
            var response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new StringContent(JsonConvert.SerializeObject(mde.Products.ToList()));
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            return response;

        }
        catch
        {
            return new HttpResponseMessage(HttpStatusCode.BadRequest);
        }
    }

我向它发送了以下请求:

http://localhost:9810/api/product/findall

我该如何解决此问题?

2 个答案:

答案 0 :(得分:0)

基于屏幕截图,您已将应用程序部署为默认站点上的虚拟应用程序。并且 / myserver 被定义为虚拟路径。这意味着您的API根URL为:

http://localhost:{IIS_PORT}/myserver/{YOUR_APP_ROUTES}

默认网站端口为80;如果您的帖子(http://localhost:9810/api/product/findall)中的URL在IIS-express上正常运行,请尝试为您的IIS部署调用此URL:

http://localhost/myserver/api/product/findall

答案 1 :(得分:0)

在命令提示符下执行此命令

%windir%\ Microsoft.NET \ Framework \ v4.0.21006 \ aspnet_regiis.exe -i

对我来说,它解决了这个问题