gpt4 book ai didi

c# - 客户端和服务之间存在类型不匹配。更新azure存储后出现错误

转载 作者:太空狗 更新时间:2023-10-30 01:04:34 24 4
gpt4 key购买 nike

这个错误给我的工作带来了很大的延误。
当我升级 nuget 软件包(尤其是 Windows Azure Storage)时,就会发生这种情况。

enter image description here

然后当我运行云项目时,它给了我这个错误:

Server Error in '/' Application.

There is a type mismatch between the client and the service. Type '[ProjectNamespace].Merchants.DeviceRegistration' is not an entity type, but the type in the response payload represents an entity type. Please ensure that types defined on the client match the data model of the service, or update the service reference on the client.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: There is a type mismatch between the client and the service. Type '[ProjectNamespace].Merchants.DeviceRegistration' is not an entity type, but the type in the response payload represents an entity type. Please ensure that types defined on the client match the data model of the service, or update the service reference on the client.

Source Error:


Line 185: select entity;
Line 186:
Line 187: var found = a.FirstOrDefault(); -- Throwing error here
Line 188:
Line 189: return found != null && found.ValidEnd.GetValueOrDefault(dtnow) >= dtnow;

Source File: --------------------- Line: 187

堆栈跟踪:

[InvalidOperationException: There is a type mismatch between the client and the service. Type '[ProjectNameSpace].Merchants.DeviceRegistration' is not an entity type, but the type in the response payload represents an entity type. Please ensure that types defined on the client match the data model of the service, or update the service reference on the client.]
System.Data.Services.Client.Materialization.EntryValueMaterializationPolicy.MaterializeResolvedEntry(MaterializerEntry entry, Boolean includeLinks) +188
System.Data.Services.Client.Materialization.EntryValueMaterializationPolicy.Materialize(MaterializerEntry entry, Type expectedEntryType, Boolean includeLinks) +189
System.Data.Services.Client.Materialization.ODataEntityMaterializer.DirectMaterializePlan(ODataEntityMaterializer materializer, MaterializerEntry entry, Type expectedEntryType) +61
System.Data.Services.Client.Materialization.ODataEntityMaterializerInvoker.DirectMaterializePlan(Object materializer, Object entry, Type expectedEntryType) +144
System.Data.Services.Client.ProjectionPlan.Run(ODataEntityMaterializer materializer, ODataEntry entry, Type expectedType) +65
System.Data.Services.Client.Materialization.ODataEntityMaterializer.ReadImplementation() +282
System.Data.Services.Client.Materialization.ODataMaterializer.Read() +41
System.Data.Services.Client.MaterializeAtom.MoveNextInternal() +527
System.Data.Services.Client.MaterializeAtom.MoveNext() +106
System.Linq.<CastIterator>d__b1`1.MoveNext() +85
System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source) +164
System.Data.Services.Client.DataServiceQueryProvider.ReturnSingleton(Expression expression) +717
System.Data.Services.Client.DataServiceQueryProvider.Execute(Expression expression) +111
System.Linq.Queryable.FirstOrDefault(IQueryable`1 source) +251
[ProjectName].Logic.ClientAuthentication.IsValidDevice(String devicecode, String clientkey, String merchant) in [PathOfFile]\ClientAuthentication.cs:187
[ProjectName].Logic.ClientAuthentication.LoginDevice(String merchant, String devicecode, String clientkey) in [PathOfFile]\ClientAuthentication.cs:69
[ProjectName].Web.Cache.Device.RefreshToken(String merchantId) in [PathOfFile]\Cache\Device.cs:49
[ProjectName].Web.Cache.Device.get_Salt() in [PathOfFile]\Cache\Device.cs:24
[ProjectName].Web.Merchant.Controllers.HomeController.Index() in [PathOfFile]\Controllers\HomeController.cs:16
lambda_method(Closure , ControllerBase , Object[] ) +101
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +59
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +435
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +60
System.Web.Mvc.Async.ActionInvocation.InvokeSynchronousActionMethod() +76
System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +36
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +73
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +136
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +102
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +49
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +117
System.Web.Mvc.Async.<>c__DisplayClass48.<InvokeActionMethodFilterAsynchronouslyRecursive>b__41() +323
System.Web.Mvc.Async.<>c__DisplayClass48.<InvokeActionMethodFilterAsynchronouslyRecursive>b__41() +323
System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +44
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +47
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +136
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +102
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +50
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +72
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +185
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +40
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +34
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +44
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +39
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +62
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +39
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +40
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9514928
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18446

这是正在生成的查询:

{https://[accountname].table.core.windows.net/MerchantApplication()?$filter=PartitionKey eq '635180925195321704_38913b36f10d47e4916671ba51e2184c' and RowKey eq 'D_f974c1da570946f183f4f4640534a343'}
base {System.Data.Services.Client.DataServiceQuery<[ProjectNamespace].Merchants.DeviceRegistration>}: {https://[accountname].table.core.windows.net/MerchantApplication()?$filter=PartitionKey eq '635180925195321704_38913b36f10d47e4916671ba51e2184c' and RowKey eq 'D_f974c1da570946f183f4f4640534a343'}

我完全不知道如何找到解决方案。

编辑

这是更高版本:

enter image description here

我还注意到更高版本会生成以下查询:

{https://[accountname].table.core.windows.net/MerchantApplication()?$filter=(PartitionKey eq '635180925195321704_38913b36f10d47e4916671ba51e2184c') and (RowKey eq 'D_f974c1da570946f183f4f4640534a343')}
base {System.Data.Services.Client.DataServiceQuery<[ProjectNameSpace].Merchants.DeviceRegistration>}: {https://[accountname].table.core.windows.net/MerchantApplication()?$filter=(PartitionKey eq '635180925195321704_38913b36f10d47e4916671ba51e2184c') and (RowKey eq 'D_f974c1da570946f183f4f4640534a343')}

编辑2

为了添加更多信息,我还执行了以下操作:

  • 删除所有nuget包并一一恢复
  • 更新了 nuget.exe 以及所有 nuget 包,我什至更新了 Windows Azure Tools for Visual Studio 2012。版本为 2.2
  • 我已经尝试了在网上找到的与此问题相关的所有可能的解决方案。

但最终上述问题并没有得到解决。
现在,我回到之前的项目文件。但是这个项目在部署到生产服务器(Windows Azure)时遇到问题,但在临时服务器中却没有。确实很奇怪。

最佳答案

参见here寻找对我有用的答案。

基本上,添加一个DataServiceKey归因于您的TableEntity包含 Merchants.DeviceRegistration 的派生类( PartitionKey ?)和RowKey特性。

我想你的类声明需要如下所示:

[DataServiceKey("PartitionKey", "RowKey")]
DeviceRegistration : TableEntity

关于c# - 客户端和服务之间存在类型不匹配。更新azure存储后出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22830991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com