次のような単純なサービスがあります。
[Route("/Message/{Folder}", "GET")]
public class MessageList : IReturn<List<Message>>
{
public string Folder { get; set; }
}
public class MessageListService : Service
{
private readonly IDatabase _database;
public MessageListService(IDatabase database)
{
_database = database;
}
public List<Message> Get(MessageList request)
{
return _database.Fetch<Message>(
"EXEC GetMessage @@Folder=@1", request.Folder);
}
私はそれを次のように呼びます:
http://localhost/Message/Inbox
どういうわけか、サービスは 2 回ヒットしました。最初は正しいリクエストで、次に request.Folder が未定義でした。奇妙なことに、2 回目の呼び出しでデータが返されなくても、フレームワークは常に最初の呼び出しから正しい結果を返します。そのため、たまたま SQL プロファイラーを実行するまで、これに気づきませんでした。
再試行の原因を正確に把握できませんでした。カミソリ UI を介して Inbox を呼び出すと、繰り返されないため、データに関連している可能性があると考えました。アーカイブを呼び出すと、そうです。しかし、データを返さない XYZ のようなランダムなパラメーターで呼び出すと、呼び出しも繰り返されます。
ただし、次のようにサービスを呼び出すと:
http://localhost/Message/Inbox?format=json
次に、常に2回サービスをヒットします。1つは有効で、もう1つは入力パラメーターなしです。しかし、Json の結果は常に正しいようです。2 番目の無効な呼び出しがデータベースにヒットした後、消えました。
本当に助けが必要です。何が起こっているのか分かりますか?