阿萨拉穆阿赖库姆。我做了一个API控制器。当我在visual studio和query中运行时,swagger返回了500个错误,但是当我调试时,它没有到达控制器操作。
这就是为什么以及如何解决它?
我还创建了一个简单的,没有参数,只是一个测试端点,它只是返回一个int变量。当查询此控制器的终结点时,不会访问此控制器文件中的任何方法。
顺便说一句,这是一个。NET框架应用程序。
认识兄弟#help
阿萨拉穆阿赖库姆。我做了一个API控制器。当我在visual studio和query中运行时,swagger返回了500个错误,但是当我调试时,它没有到达控制器操作。
这就是为什么以及如何解决它?
我还创建了一个简单的,没有参数,只是一个测试端点,它只是返回一个int变量。当查询此控制器的终结点时,不会访问此控制器文件中的任何方法。
顺便说一句,这是一个。NET框架应用程序。
认识兄弟#help
3条答案
按热度按时间ufj5ltwl1#
我知道为什么会这样了。这是因为控制器中使用的服务没有在DI容器中注册。在我看来,它应该只是抛出一个异常,而不是返回500而不到达控制器操作。不管怎么说,我不知道为什么,但这对我工作后,我把服务添加到DI。
f2uvfpb92#
我竟然忘了我的这个问题。但是,无论如何,这个答案中可能有一些对某人有用的东西。
我找到了答案:如果有某种服务没有在依赖注入中注册,那么对于任何请求,swagger都会出现500错误。任何调用在到达控制器之前都将面临抛出的异常。
dldeef673#
发生这种情况的另一个原因是,您有多个端点具有相同的路由,例如:
GET jobs/
解析为两个+方法。