简体   繁体   English

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

[英]There is a type mismatch between the client and the service. An error after updating azure storage

This error brought a lot of delay to my work. 这个错误给我的工作带来了很多延迟。
This happened when I upgraded my nuget packages, especially the Windows Azure Storage . 这发生在我升级我的nuget包时,特别是Windows Azure Storage

在此输入图像描述

Then when I run the cloud project, it gives me this error: 然后当我运行云项目时,它给了我这个错误:

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 

Stack Trace: 堆栈跟踪:

[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  

Here is the query being generated: 这是生成的查询:

{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'}  

I am totally out of idea on finding solution for this. 我完全不想为此寻找解决方案。

Edit 编辑

Here is the later version: 这是更高版本:

在此输入图像描述

I also notice that the later version generates this query: 我还注意到更高版本会生成此查询:

{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')}

Edit 2 编辑2

To add more information, I also did the following: 为了添加更多信息,我还做了以下事情:

  • Remove all nuget packages and restore them one by one 删除所有nuget包并逐个恢复
  • Updated nuget.exe as well as all nuget packages, I even updated Windows Azure Tools for Visual Studio 2012. The version is 2.2 更新了nuget.exe以及所有nuget包,我甚至更新了Visual Studio 2012的Windows Azure工具。版本是2.2
  • I have tried all the possible solutions I found on the net related to this question. 我已经尝试了我在网上找到的与此问题相关的所有可能的解决方案。

But in the end, the problem above was not solved. 但最终,上面的问题没有解决。
For now, I go back to the previous project files. 现在,我回到之前的项目文件。 But this project is having problem when deploying to production server (Windows Azure), but not in staging server. 但是,此项目在部署到生产服务器(Windows Azure)时遇到问题,但在登台服务器中没有问题。 It is really weird. 这真的很奇怪。

See here for the answer that worked for me. 在这里查看适用于我的答案。

Basically, add a DataServiceKey attribute to your TableEntity derived class ( Merchants.DeviceRegistration ?) that includes the PartitionKey and RowKey properties. 基本上,将DataServiceKey属性添加到包含PartitionKeyRowKey属性的TableEntity派生类( Merchants.DeviceRegistration ?)。

I imagine your class declaration will need to look something like the following: 我想你的类声明需要看起来如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 WCF DataServices(CTP2):客户端和服务之间存在类型不匹配 - WCF DataServices (CTP2): There is a type mismatch between the client and the service WCF 客户端不接受来自服务的响应。 由于 EndpointDispatcher 的 AddressFilter 不匹配,无法在接收方处理 - WCF Client does not accept response from service. Cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher Azure应用服务上的Service Fabric客户端。 无法加载DLL&#39;FabricCommon.dll&#39; - Service Fabric Client on Azure App Service. Unable to load DLL 'FabricCommon.dll' 服务客户端通信上的ContractFilter不匹配错误 - ContractFilter mismatch error on service client communication 之间的区别:Azure服务客户端和设备客户端 - Diffrerence between: Azure service client and device client 在其他服务保存模型数据后,在服务中使用模型数据。 - Use model data in in a service after it was saved by another service. 没有在Azure媒体服务中获取所有频道列表。 怎么修? - Not getting all channel list in azure media service. How to fix? Azure 容器应用服务。 Docker 运行参数? - Azure container app service. Docker Run parameters? WCF 错误:“客户端和服务器之间的安全绑定不匹配” - WCF Error: "mismatch of the security binding between the client and the server" 对于 Azure Blob Storage .NET 客户端,“Microsoft.Azure.Storage.DataMovement”和“Azure.Storage.Blob”有什么区别? - For Azure Blob Storage .NET Client, what is the difference between “Microsoft.Azure.Storage.DataMovement” and “Azure.Storage.Blobs”?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM