Допустим, у меня есть следующий ApiController в моем ASP.NET WebAPI Применение:WebAPI контроллер повторного
class MyApiController : ApiController
{
private string str;
[HttpGet]
public string SetStr(string str)
{
this.str = str;
MaybeSleep(); // Some executions take longer, some don't.
return this.str;
}
}
(Реальность немного сложнее, но это должно быть все, что имеет значение)
Это работает нормально в моей среде и некоторых других, всегда возвращая входное значение, даже при большой нагрузке на сервер.
В двух средах, однако, str иногда «волшебные» изменения между множеством и возвратом, даже без слишком большой нагрузки на сервер. Тем не менее, он всегда изменяется на значения, которые были отправлены на сервер примерно в это время, а не только те, которые были отправлены в этом запросе.
Итак, мои вопросы:
- ли ApiController повторное поведение, которое я должен только ожидать, или должен быть создан новый ApiController, используется и уничтожили для каждого отдельного запроса на процессы сервера?
- Это поведение зависит от версии ASP.NET, версии IIS и/или настройки Web.config?
- Есть ли документация о поведении частных переменных ApiController, доступных от Microsoft?
- Или это, возможно, известная ошибка в определенной версии .NET или ASP.NET?
Новый контроллер создается для каждого запроса так что если у вас есть общий ресурс вмешательства, это должно быть изолировано. –
Я уверен, что ваш пример неверен и не отражает ситуацию в реальном мире. Прежде всего, я не думаю, что контроллеры могут быть повторно использованы таким образом (если бы они могли быть действительно обеспокоены некоторыми из моих проектов). Второе повторное использование или нет, вы просто возвращаете аргумент. Вы используете это поле как своего рода локальную переменную. – Stilgar
Если вы не используете одну и ту же ссылку ApiController для нескольких вызовов. (Как создание глобального контроллера и вызов метода, который будет переписывать атрибут для каждого вызова), вам должно быть хорошо идти. И, как сказал Стилгар, это, вероятно, не вся ситуация, и, вероятно, это больше, чем кажется. –