2014-10-21 4 views
0

Редактировать: Исправлено, очевидно, классы API не могут быть статическими.Запрошенный ресурс не поддерживает метод http GET. Код ошибки 405

У меня есть веб-API

public sealed class DeploymentController : ApiController 
{ 
[HttpGet] 
public static HttpResponseMessage Get([FromUri]Parameters deployment) 
{ 
    if (deployment == null) return new HttpResponseMessage(HttpStatusCode.BadRequest); 

    DeploymentRepository.DetermineExtras(deployment); 
    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); 
    result.Content = new StreamContent(DeploymentRepository.GenerateStreamFromString 
    (DeploymentRepository.GetDeployment(deployment))); 
    result.Content.Headers.ContentType = 
    new MediaTypeHeaderValue("application/cmd"); 
    result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 
    { 
    FileName = "DeployApplication.vbs" 
    }; 
    return result; 
} 

}

, который возвращает файл для загрузки при запуске.

Этот API должен быть вызван ссылками, на которые Пользователь нажимает.

Как

http://localhost:52998/api/deployment?applicationname=something&systemkind=anotherthing&platformkind=Dotnet 

Но вместо файла, я получаю сообщение об ошибке 405.

A first chance exception of type 'System.Web.Http.HttpResponseException' occurred in System.Web.Http.dll 
iisexpress.exe Information: 0 : Response, Status=405 (MethodNotAllowed), Method=GET, Url=http://localhost:52998/api/deployment?applicationname=something&systemkind=anotherthing&platformkind=Dotnet, Message='Content-type='application/xml; charset=utf-8', content-length=unknown' 
iisexpress.exe Information: 0 : Operation=XmlMediaTypeFormatter.WriteToStreamAsync 

Я уже пробовал методы предложили похожую на вопросы, до сих пор не увенчались успехом.

+0

Разрешен вы CORS в WebAPI? –

ответ

0

Кажется, вы не включили CORS. Ниже приведены шаги, позволяющие сделать CORS включенными.

шаги, чтобы сделать его Корс включен:

  1. Установите это - Install-Package Microsoft.AspNet.WebApi.Cors using NuGet
  2. Открыть файл App_Start/WebApiConfig.cs. Добавьте следующий код в метод WebApiConfig.Register.
  3. Далее добавьте атрибут [EnableCors] к классу контроллера:

    С следующего Params

    [EnableCors(origins: "your_domain", headers: "*", methods: "GET")]

  4. Переустановки проекта WebAPI.

ИСТОЧНИК - http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

Больше ссылки - http://www.codeproject.com/Articles/742532/Using-Web-API-Individual-User-Account-plus-CORS-En