2015-05-21 10 views
5

ich einen BreezeController in einem WebAPI 2-Projekt habe:Fehler beim Herstellen http Aufrufs: Metadaten Abfrage fehlgeschlagen für:

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

Meine Client-Anwendung diesen Code für das Konsumieren der Daten hat:

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

Wenn Ich benutze meine App - es ist eine mobile App und es öffnet sich in Ripple - ich kann in das Javascript debuggen. Es läuft in der Methode _queryFailed und ich bekomme diese Fehlermeldung:

Metadaten Abfrage fehlgeschlagen für: http://localhost:24830/breeze/breeze/Metadata; undefined

Der Server läuft auch im Debugger. Es trifft den Haltepunkt in der Metadata() Methode nicht. Aber es tut, wenn ich den Pfad in einen Browser setze und die MetaData zurückgibt.

Was kann ich jetzt tun, um das Problem zu untersuchen?

BEARBEITEN Ich habe etwas anderes versucht. Ich habe die einzelnen Projekte in separaten Instanzen von Visual Studio geöffnet (ich verwende VS 2015 RC). Ich habe jetzt den Breakpoint auf dem Server und mein Client geht in die querySucceeded Funktion. So ein Erfolg von einer Art. Die Frage ändert sich also. Gibt es eine Möglichkeit, meine Umgebung so einzurichten, dass sie nur in einer Instanz von Visual Studio funktioniert?

Antwort

1

Haben Sie versucht, die Metadaten manuell abzurufen?

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

Quelle: breeze fetch meta data if not present