我在WebApi 2项目中有一个BreezeController:
[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方法中,我得到以下错误消息:
服务器也在调试器中运行。它没有到达
Metadata()
方法中的断点。但是如果我将路径放入浏览器,它会返回MetaData。我现在该怎么做才能调查问题?
编辑
我尝试了一些不同的东西。我在Visual Studio的单独实例中打开了各个项目(我使用的是VS 2015 RC)。现在,我在服务器上命中了断点,我的客户端进入了
querySucceeded
函数。如此成功。所以问题就改变了。有没有一种方法可以设置我的环境使其仅在Visual Studio的一个实例中工作? 最佳答案
您是否尝试过手动获取元数据?
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
关于breeze - 拨打http时出现错误: Metadata query failed for:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30374819/