- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 azure 移动应用程序后端出现了奇怪的行为。如果我的 Controller 操作返回 IQueryable<T>
并且实体类型具有导航属性,它返回 500。
一个简单的例子:
型号
public class ProductHierarchy : EntityData
{
public string Name { get; set; }
public string Description { get; set; }
public DateTime ValidFrom { get; set; }
public DateTime ValidTo { get; set; }
public string BrandId{ get; set; }
[ForeignKey("BrandId")]
public virtual Brand Brand { get; set; }
public ProductStatus Status { get; set; }
public int CreatedBy { get; set; }
public int ModifiedBy { get; set; }
}
Controller 操作
[HttpGet]
[Route("api/ProductHierarchies/FromBrand/{brandId}")]
public IQueryable<ProductHierarchy> FromBrand(int brandId)
{
var hierarchies = Query().Where(hi => hi.Brand.OldBrandId ==brandId);
return hierarchies;
}
当我请求此操作时,解决方案在我的本地计算机上运行,一切正常,但是当我将解决方案发布到 azure 时,FromBrand
操作开始返回 500,带有通用消息
"An error has occurred."
此外,当我向操作发出请求时,Azure 日志会显示以下异常:
Detailed Error Information: Module
__DynamicModule_Microsoft.Owin.Host.SystemWeb.OwinHttpModule,Microsoft.Owin.Host .SystemWeb, Version=3.0.1.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35_19e9f0a3-023d-4d8b-83ef- 180a415e7921 Notification PreExecuteRequestHandler Handler ExtensionlessUrlHandler-Integrated-4.0 Error Code 0x00000000
我发现了两个可以避免该错误的更改:
1) 当我装饰Brand
时模型的属性 JsonIgnore
,Brand
属性被忽略,一切正常
2) 当我将操作返回类型更改为 List<ProductHierarchy>
时,保留 Brand
没有 JsonIgnore
的模型的属性属性,一切都工作正常。
这让我得出结论,问题发生在序列化 IQueryable<T>
上。当T
具有另一个实体作为类型的属性。
我没有发现任何人有同样的问题,所以我开始研究我的 nuget 包,寻找哪个包可以工作或与序列化过程交互,我的怀疑遍布 Newtonsoft Json 和 AutoMapper。
有人知道如何查看这些软件包的内部情况并确定问题的根源吗?
最佳答案
围绕关系存在很多问题和边缘情况。您遇到问题我并不感到惊讶。
一些资源:
关于c# - 仅当返回类型为 IQueryable 时,Azure MobileApp Controller 才返回 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40663134/
我需要我的应用程序支持针对我们的私有(private)数据库的自定义身份验证,并遵循 Adrian Hall 书中的建议 https://adrianhall.github.io/develop-mo
微软声称提供用于自定义身份验证的 OOB 功能。我开始使用这个库,令我惊讶的是这个库唯一可用的功能就是生成 token 。就这样!我相信 Web API Asp.Net Identity 的默认模板是
我在运行我的 android 应用程序时收到此错误消息,看起来错误与 multi-dexing 有关,因为它试图在我的 DexPathList 中找到一个类但失败了 2019-11-03 23:10:
我正在使用 Nativescript-Vue 制作 native 应用程序,在我的第一个组件中,我启动了一个简单的发布请求,它确实可以正常工作(我在桌面版本上测试过)。但是由于我忽略的原因,响应存在问
我有一个 Xamarin Form 2.4 项目,该项目使用 Azure AD v2.0 端点进行身份验证。 Xamarin 的登录部分运行良好。但我可以找到正确的方法来使用收到的 token 将其传
我有一个 Xamarin Form 2.4 项目,该项目使用 Azure AD v2.0 端点进行身份验证。 Xamarin 的登录部分运行良好。但我可以找到正确的方法来使用收到的 token 将其传
我的 azure 移动应用程序后端出现了奇怪的行为。如果我的 Controller 操作返回 IQueryable并且实体类型具有导航属性,它返回 500。 一个简单的例子: 型号 public cl
重现错误,我创建了一个空白的移动应用程序和一个新的 SQL 数据库。之后,我按照快速入门指南下载了后端和 Xamarin.Forms 项目。 我已将 Web 应用部署到 azure,并使用 5'' K
移动应用服务 我有一个 Azure MobileApp,其应用服务身份验证配置为“AAD 提供商” 将客户端 ID 和 key 设置为创建的 Azure AD 应用程序的 AppID 和 key 。
我是一名优秀的程序员,十分优秀!