首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回后的ODataController错误

返回后的ODataController错误
EN

Stack Overflow用户
提问于 2015-09-08 23:22:50
回答 2查看 591关注 0票数 0

我有一个OData服务,它由几个使用ODataController的MVC控制器实现。除了一个控制器之外,其他所有控制器都有问题,其中一个内部500个错误正在返回,没有任何帮助的返回语句之后:

代码语言:javascript
复制
/// <summary><see cref="ODataController" /> reacting to queries relating to <see cref="Contract" /></summary>
[CustomExceptionFilter]
public class ContractsController : ODataController
{
    // GET: odata/Contracts
    [EnableQuery]
    public IQueryable<Contract> GetContracts()
    {
        return DataAccess.GetContracts();
    }

    ... other methods
}

/// <summary>Single point of reference to access data</summary>
public static class DataAccess
{
    /// <summary>Gets the queryable collection of <see cref="ContractCoverageDetail" /></summary>
    /// <returns>The queryable collection of <see cref="ContractCoverageDetail" /></returns>
    public static IQueryable<Contract> GetContracts()
    {
        IQueryable<Contract> results = null;

        using (EntityFrameworkContext context = new EntityFrameworkContext())
            results = context.Contracts.ToArray().AsQueryable();

        return results;
    }
}

使用相同DataAccess类的另一个控制器返回的数据很好。为彼此的控制器返回的所有内容是:

代码语言:javascript
复制
<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
    <m:code/>
    <m:message xml:lang="en-US">An error has occurred.</m:message>
</m:error>

该错误似乎是在我的返回语句之后引发的,如果在返回(F10)之后执行,则会击中集合返回实体上的每个单独的{ get;}属性,然后将带有上述错误的结果返回给浏览器。我无法获得实际的错误信息(内部错误)为我的生命,这是奇怪的是,一个控制器正在工作,而其余的失败,没有任何细节。

有人知道导致这种情况的原因吗,或者在返回语句之后如何打开错误细节?

代码语言:javascript
复制
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

在global.asax.cs中,无论是在web.config中还是在web.config中都没有帮助:

代码语言:javascript
复制
<system.web>
  <customErrors allowNestedErrors="true" mode="On" />
</system.web>

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>

你知道我怎么才能得到实际的异常吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-09 01:06:23

下面是关于如何调试Web和ODL的简单指南。

http://odata.github.io/WebApi/10-01-debug-webapi-source/

票数 0
EN

Stack Overflow用户

发布于 2015-09-09 00:18:47

很难确切地说出这个问题的原因,但是这里有几件你可以尝试的事情。希望其中之一能为您提供更多关于您的异常的信息。

调试所有代码

这可能看起来很明显,但请确保您不是只调试代码。您可以通过访问调试->选项和设置下的调试选项来检查.菜单。确保没有选中“仅启用我的代码”。通常情况下可能没问题。当出现异常错误时,您似乎无法得到它们,有时这种设置可能会使您陷入困境。

调试异常

另一件既有用又痛苦的事情是调试->异常.设置。这些异常集可以配置为使Visual自动中断,从而使您能够看到它们正在移动的部分。对于调试MVC和.NET,通常需要启用公共语言运行时异常。

打开调试异常后,您可能会得到大量您不想要的异常。只需忽略它们并继续运行,直到找到与oData相关的异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32468699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档