2012-05-01 7 views
0

У меня есть проблема с WebAPI на asp.net mvc4 сайте, сообщение об ошибке:Сеть САШ mvc4 WebAPI причиной аварии workerprocess

Вы должны написать «тип» атрибут = «объект» после записи атрибут с локальным именем '__тип'.

стек:

at System.Web.Http.WebHost.HttpControllerHandler.EndProcessRequest(IAsyncResult result) 
at System.Web.Http.WebHost.HttpControllerHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) 
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Мой метод возвращает список объектов IEnumerable, продукт DataContract сериализуемый без проблем

я выздоровел эту ошибку с помощью глобального обработчика ошибок, когда это происходит приложение переработаны.

ответ

0

Вы пробовали какие-либо предложения here? Кажется, что они связаны с сериализацией (не используя ключевое слово virtual, определяющее известные типы и т. Д.).

я на самом деле рекомендую не делать то, что люди в посте описываете, который использует объекты непосредственно из контекста БД и не превращая их в какой-то модели ответа, по нескольким причинам:

  • Если ваша компания изменилась, у вас есть потенциально , то ваш контракт с любыми потребителями вашего WebAPI
  • Если вы хотите преобразовать любые значения после выхода из контекста, вы вынуждены делать это в контроллере, какой вид отстой, потому что i * t дает контроллеру дополнительную ответственность за отображение и передачу образование * (AutoMapper является лучшим для этого)
  • Как вид комбинации первых двух точек, вы связали проблемы модели устойчивости с проблемой «вид» (или в этом случае, контракт) (то есть, вы aren и т. д.)

Не уверен, что вы делаете какие-либо из этих действий, не видя больше кода, но это может помочь сделать модель, которую вы пытаетесь использовать в ApiController как POCO -y насколько это возможно.

+0

Спасибо Брэндон за ваш ответ. модель видна по адресу http://erpstore.codeplex.com/SourceControl/changeset/view/88814#2171145, я не использую EntityFramework. – mchouteau

+0

Можете ли вы опубликовать образец действия контроллера API, который прерывается? Это просто вызов этой операции, которая заставляет сайт ломаться? Разрывается ли запрос на XML или JSON? –

+0

Не исключение не является систематическим, вызывающий: var client = new HttpClient(); \t \t T result = default (T); \t \t client.GetAsync (requestUri) .ContinueWith ((задача) => \t \t { \t \t \t \t HttpResponseMessage ответ = task.Result; \t \t \t \t, если (response.StatusCode == System.Net. HttpStatusCode.OK) \t \t \t \t { \t \t \t \t \t response.Content.ReadAsAsync ().ContinueWith ((readTask) => \t \t \t \t \t { \t \t \t \t \t \t результат = readTask.Result; \t \t \t \t \t}) Подождите(). \t \t \t \t} \t \t \t \t еще \t \t \t \t { \t \t \t \t \t бросить новый Exception (response.ReasonPhrase); \t \t \t \t} \t \t}) .Wait(); WebApiController находится здесь: http://erpstore.codeplex.com/SourceControl/changeset/view/90030#2171287 – mchouteau

Смежные вопросы