简体   繁体   中英

Issue after deploying ASP.NET Web API to production

I tested ASP.NET Web API in local environment with IIS Express and on other server with full IIS. At both places, token api and post api is working fine.I am using System.Web.Http namespace as suggested. However, after deploying it to shared hosting server, I am getting below error:

Token API:

"error": "unsupported_grant_type"

Post API (method with [HttpPost] of System.Web.Http):

"Message": "The requested resource does not support http method 'GET'."

Post API code:

[AllowAnonymous]
[HttpPost]
[Route("api/test")]
public IHttpActionResult Test([FromBody] Employee emp)
{
    ...
}

I am using default Routing available in WebApiConfig.cs as shown below. Not sure whether it matters as I am already decorating API method with Route:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

I tried deploying with FileSystem method (Upload files to server and configure application in IIS) and Web Deploy method to directly deploy API to server. I am using Postman to test and using the same Http Method (Post) and body that I use while testing it locally.

What could be difference between local IIS Express/IIS and shared hosting server IIS that causes this issue?

As far as I know, the "error": "unsupported_grant_type" means you used the wrong parameter in your request, I suggest you could re-check your request header or body to make sure you have used the right parameter type.

The "Message": "The requested resource does not support http method 'GET'." error means you used the get method instead of post to send the request.

If you use the post really, I suggest you could use Fail request tracing to see what has happened when you use the postman to send the request. Article .

`

The issue was that the hosting provider had secondary URL which needs to be used instead of public URL. I replaced public URL with secondary URL in my API call and it started working.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM