2015-05-21 23 views
5

Mam BreezeController w WebAPI 2 projektu:Błąd podczas wykonywania połączenia http: zapytanie metadanych nie powiodło się dla:

[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; 
    } 
} 

Moja aplikacja klient ma ten kod do spożywania dane:

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); 
} 

Kiedy Uruchamiam moją aplikację - jest to aplikacja mobilna i otwiera się w Ripple - mogę debugować w javascript. Jest uruchamiany w metodzie _queryFailed i pojawia się następujący komunikat o błędzie:

Zapytanie o metadane nie powiodło się dla: http://localhost:24830/breeze/breeze/Metadata; undefined

Serwer jest również uruchomiony w debugerze. Nie uderza w punkt przerwania w metodzie Metadata(). Ale robi to, jeśli umieściłem ścieżkę w przeglądarce i zwróci MetaData.

Co mogę teraz zrobić, aby zbadać problem?

EDYTOWANIE Próbowałem czegoś innego. Otworzyłem poszczególne projekty w oddzielnych instancjach Visual Studio (używam VS 2015 RC). Teraz uderzyłem w punkt przerwania na serwerze, a mój klient przechodzi do funkcji querySucceeded. Sukces w pewnym sensie. Więc pytanie się zmienia. Czy istnieje sposób na skonfigurowanie środowiska do pracy w jednym tylko przykładzie programu Visual Studio?

Odpowiedz

1

Czy próbowałeś ręcznie pobrać metadane?

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. 
    }); 
} 

źródło: breeze fetch meta data if not present