我在 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 query failed for: http://localhost:24830/breeze/breeze/Metadata; undefined
服务器也在调试器中运行。它没有在
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/