Web Api 2部署服务器的方法问题

时间:2016-09-15 18:42:38

标签: asp.net asp.net-web-api2 iis-8

我在部署的服务器上使用MVC 6 RC 1和IIS,由于某些原因,使用参数的Web方法仅在我部署的服务器上返回404。

使用带有以下网址的邮递员:

的http:// DEPLOYEDSERVERIP / API /的Util / ReleaseEquipment / 5

状态404未找到

Cache-Control →no-cache
Content-Length →0
Date →Thu, 15 Sep 2016 18:29:16 GMT
Expires →-1
Pragma →no-cache
X-Powered-By →ASP.NET

使用带有以下网址的邮递员:

状态200确定

http://localhost:3000/api/Util/ReleaseEquipment/5

connection →close
content-type →text/html; charset=utf-8
date →Thu, 15 Sep 2016 18:33:35 GMT
transfer-encoding →chunked
x-powered-by →ASP.NET
x-sourcefiles →=?UTF-8?B?QzpcQ0ZFVFNcQ0ZFVFNcc3JjXENGRVRTXHd3d3Jvb3RcYXBpXFV0aWxcUmVsZWFzZUVxdWlwbWVudFw1?=

但是,如果我使用网址运行邮递员: http://localhost:3000/api/Util/DeleteMeTest HTTP:// DEPLOYEDSERVERIP / API /的Util / DeleteMeTest

    [HttpGet("DeleteMeTest")]
    public String DeleteMeTest()
    {
        return "WORKS";
    }

他们两个都很好。所以由于某种原因,服务器上需要参数的无web api方法似乎有效,我不知道为什么。任何帮助,将不胜感激。谢谢。

修改

我做了进一步的实验,发现了以下内容:

 [Produces("application/json")]
[Route("api/Random")]
public class RandomController : Controller
{

    private DBContext _context;

    public RandomController(DBContext context)
    {
        _context = DBContext ;
    }

    [HttpGet("GetZoneID/{zonename}")]
    public int GetZoneID(string zonename)
    {
        Zone zone = _context.Zones.Where(l => l.Name == zonename).First();

        return zone.ZoneId;
    }

    [HttpGet("GetZoneIDTEST/{zonename}")]
    public int GetZoneIDTEST(string zonename)
    {
        try
        {
            Zone zone = _context.Zones.Where(l => l.Name == zonename).First();
            return zone.ZoneId;
        }
        catch (Exception e)
        {
            return -100;
        }


    }

使用邮递员,“http://199.131.110.4/api/Random/GetZoneIDTEST/sdgdsg”返回-100状态200 OK,但“http://199.131.110.4/api/Random/GetZoneID/sdgdsg”返回404.所以似乎未被捕获的异常也导致404错误。

0 个答案:

没有答案
相关问题