Итак, я решил проблему с помощью коллеги.
Оказалось, что это на самом деле вызвано тем, что методы контроллера C # Web API обрабатывают параметры запроса, которые не указаны.Я предположил (будучи новичком в .NET), что, как и любой параметр функции в C #, который не предоставляется, по умолчанию он равен нулю.Однако для параметров запроса это, очевидно, не тот случай - он предполагает значение по умолчанию начала нашего календаря.
Я объединял нулевые значения в какую-то разумную дату в будущем, но эта операция никогда не будет выполненапотому что переменная на самом деле никогда не была нулевой.
Я должен был обнаружить это, когда прошел через нее в отладчике, но я, очевидно, как-то пропустил ее, не зная как.
Однако я хотелподелиться информацией, которая помогла мне найти причину проблемы - я использовал инструменты профилирования, встроенные в MongoDB, чтобы отследить причину.
Запустив следующие строки в оболочке MongoDB:
db.setProfilingLevel(0)
db.system.profile.drop()
db.createCollection( "system.profile", { capped: true, size:4000000 } )
db.setProfilingLevel(2)
чтобы включить профилирование, выполнить мой вызов API, а затем запустить следующую строку в оболочке Mongo:
db.system.profile.find().pretty()
Мне удалось получить этот вывод (сокращенный до важной части):
"command" : {
"find" : "stats",
"filter" : {
"Timestamp" : {
"$lt" : ISODate("0001-01-01T00:00:00Z")
}
// omitted
Обратите внимание, что отметка времени здесь находится в 0001 году. Это привело меня к исследованию, как она получила это значение, wкоторый был в конечном итоге обнаружен отладчиком.
Надеюсь, этот подход может помочь кому-то еще в будущем.