我正在使用Devart Oracle驱动程序通过OData端点调用它。
在其中一种环境中,我遇到了错误:
Data service failure.
An exception was thrown of type DataServiceException.
Message: Internal Server Error. The type 'System.Data.Services.Internal.ProjectedWrapper3' is not a complex type or an entity type.
Source: Microsoft.Data.Services
Help Link:
ErrorCode:
HResult: -2146233079
MessageLanguage: en-US
StatusCode: 500
TargetSite: System.Data.Services.Providers.ResourceType GetNonPrimitiveResourceType(System.Data.Services.Providers.DataServiceProviderWrapper, System.Object)
Exception Type: System.Data.Services.DataServiceException, Microsoft.Data.Services, Version=5.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Additional Information:
FullName: Validation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null
IdentityName: NT AUTHORITY\NETWORK SERVICE
Stack Trace:
at System.Data.Services.WebUtil.GetNonPrimitiveResourceType(DataServiceProviderWrapper provider, Object obj)
at System.Data.Services.Serializers.EntitySerializer.WriteEntry(IExpandedResult expanded, Object element, Boolean resourceInstanceInFeed, ResourceType expectedType)
at System.Data.Services.Serializers.EntitySerializer.WriteFeedElements(IExpandedResult expanded, QueryResultInfo elements, ResourceType expectedType, String title, Func`1 getRelativeUri, Func`1 getAbsoluteUri, Boolean topLevel)
at System.Data.Services.Serializers.EntitySerializer.WriteTopLevelElements(IExpandedResult expanded, QueryResultInfo elements)
at System.Data.Services.Serializers.Serializer.WriteRequest(QueryResultInfo queryResults)
at System.Data.Services.ResponseBodyWriter.Write(Stream stream)
执行下一个请求时:
var type = modelServiceWrapper.CreateQuery<MyClass>()
.OrderBy(m => m.Subclass.Property1)
.Where(m => m.Id == id && m.Subclass.Property2 == typeToFilterOn)
.Select(m => new {m.Id})
.FirstOrDefault();
这似乎是一个特定于环境的问题,因为相同的IIS文件夹和相同的数据库可以在其他环境中正常工作。
看起来错误消息是从here抛出的,但我无法更深入地了解为什么Devart Oracle提供程序无法处理ProjectedWrapper *对象。
有人面对这样的问题吗?
该问题似乎与数据或数据库设置有关。我试图将相同环境上的相同代码指向另一个数据库,但没有遇到问题。
ProxyCreation ID也被禁用。