我在服务架构集群中遇到了两个关于Web API无状态服务的奇怪之处。第一个关于响应有状态服务的响应的缺失属性。第二个是对GET的响应从类更改为结构时的严重错误。详情如下。
我有三个项目:
问题在于我最近更新了我的类库,为Person提供了一些新属性(比如CreatedOn)。无状态Web API和有状态服务都具有此软件包的最新版本并已部署(覆盖,而不是升级)。有状态服务正确识别并存储这些新属性。但是,Web API在某种程度上不会创建没有这些新属性的对象。它不像是空的,它们根本就不存在!
我尝试卸载/重新安装nuget包,以及清除bin / obj文件夹。两者都不起作用。但是,创建新的Web API Service结构项目确实有效。
任何想法,或者我的项目是否已被损坏?
物业图片:
这可能与第一个问题有关,并使用相同的库和服务。我尝试将Person对象更改为结构,但是对api的任何调用都会引发以下错误:
{ "消息":"发生了错误。", " ExceptionMessage":"该对象尚未初始化。确保在所有其他初始化代码之后在应用程序的启动代码中调用HttpConfiguration.EnsureInitialized()。", " ExceptionType":" System.InvalidOperationException", " StackTrace":"在System.Web.Http.Http.HttpRouteCollection上的System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes()\ r \ n中,在System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot,HttpRequestMessage request)\ r \ n中。 System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(HttpRequestMessage请求,CancellationToken cancellationToken)中的GetRouteData(HttpRequestMessage请求)\ r \ n在System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)中的\ r \ n r \ n在System.Web.Http.HttpServer.d__0.MoveNext()" }
再一次,在另一个相同的Web API项目中尝试这个工作就可以了。
思想?
答案 0 :(得分:1)
当我使用格式错误的路线时,我也一样 例子
〔路线(" / API /信息&#34)]
正确
〔路线(" API /信息&#34)]