我有一个用ASP.NET (不是核心)编写的WebAPI服务,我正在尝试为它生成文档,以便允许其他开发人员使用它。我找到了Swashbuckle,并安装了它。然后,因为我的一些服务也使用OData,所以我添加了Swashbuckle.OData。然后,我修改了SwaggerConfig中的CustomProvider设置以使用ODataSwaggerProvider。我还设置了ResolveConflictingActions(apiDescriptions => apiDescriptions.First()),因为我有几个操作具有相同的URL路径,只是查询字符串不同(稍后我需要解决这个问题)。到目前一切尚好。
然后,我测试了它。我启动了我的web应用程序,然后添加了"/swagger/“,然后结束。我收到一条消息,说明它正在加载资源信息。然而,几分钟后,我得到了一个浏览器错误调试弹出窗口,指出“错误:没有足够的存储空间可用来完成此操作。”它会询问我是否要调试,如果我想要调试,它会将我带到IE (我正在使用的浏览器)中的调试器。堆栈中唯一的代码要么来自jquery-1-8-0-min-js,要么来自swagger-ui-min-js (这部分让我感到困惑,因为我的项目中没有"swagger-ui-min-js“文件;我假设它嵌入在dll中)。没有堆栈跟踪的一部分会浮回到我的代码中,并且那里的所有代码都被缩小了,所以很难调试。
但是,我确实知道它至少部分工作,因为在您关闭错误弹出窗口后,其中三个控制器确实会出现在结果页面中。您可以在它们之间导航,所有的GET、POST、PUT和DELETE似乎都在那里,您可以对它们进行测试。
是否每当您导航到"/ Swagger /“url时,Swagger都会命中服务中的所有url,以便生成文档?我想知道它是否遇到了一个运行时间特别长的操作,或者它生成的文档占用了太多的磁盘空间(我的磁盘上有足够的空间,但它可能指的是RAM?)。
无论如何,即使这不是问题,我如何让它生成一些东西,某种文档文件,我可以发送给某人?我没有看到任何新的文件添加到我的文件夹中,所以似乎每次你导航到swagger URL时,它都会重新执行整个过程。
发布于 2017-09-29 04:24:03
当我尝试Chrome浏览器时,我不再有这个问题(我之前使用的是IE11 )。不确定问题是什么,但这就是解决方法。
https://stackoverflow.com/questions/46351900
复制相似问题