2015-05-21 4 views
5

У меня есть BreezeController в проекте WebAPI 2:Ошибка при принятии HTTP вызова: Metadata запрос Сбой:

[BreezeController] 
public class BreezeController : ApiController 
{ 
    private readonly IBreezeRepository _repo; 

    public BreezeController(IBreezeRepository repo) 
    { 
     _repo = repo; 
    } 

    [HttpGet] 
    public string Metadata() 
    { 
     return _repo.MetaData; 
    } 

    [HttpGet] 
    public IQueryable<Property> Properties() 
    { 
     return _repo.Properties; 
    } 
} 

Мой клиент приложение имеет этот код для потребляющих данные:

var mgr = new breeze.EntityManager({ 
    serviceName: "http://localhost:24830/breeze/breeze/" 
}); 

EntityQuery 
    .from('Properties') 
    .select('ID') 
    .using(mgr) 
    .execute() 
    .then(querySucceeded, _queryFailed); 

function querySucceeded(data) { 
    return data.results; 
} 

function _queryFailed(error) { 
    alert("Error while making http call: " + error.message); 
} 

Когда Я запускаю свое приложение - это мобильное приложение, и оно открывается в Ripple - я могу отлаживать javascript. Он запускается в метод _queryFailed, и я получаю это сообщение об ошибке:

Ошибка запроса метаданных для: http://localhost:24830/breeze/breeze/Metadata; undefined

Сервер также работает в отладчике. Он не попадает в точку останова в методе Metadata(). Но это происходит, если я помещаю путь в браузер и возвращает MetaData.

Что я могу сделать сейчас, чтобы исследовать проблему?

EDIT Я пробовал что-то другое. Я открыл отдельные проекты в отдельных экземплярах Visual Studio (я использую VS 2015 RC). Теперь я ударил точку останова на сервере, и мой клиент переходит в функцию querySucceeded. Такой успех. Поэтому вопрос меняется. Есть ли способ настроить мою среду для работы только в одном экземпляре Visual Studio?

ответ

1

Вы пытались вручную получить метаданные?

function fetchMetadata() { 
    var manager = new breeze.EntityManager("api/breeze"); 
    if (manager.metadataStore.isEmpty()) { 
     return manager.fetchMetadata(); 
    } 

    return Q.resolve(); 
} 

function start() { 
    fetchMetadata().then(function() { 
     // Metadata fetched. 
     // Do something here. 
    }); 
} 

Источник: breeze fetch meta data if not present