[英]ServiceStack 5.13.0 metadata and swagger-ui pages return a 500 error after .NET 6 migration
[英]swagger-ui returns 500 after deployment
调试时,我使用了调试配置(我为以下项目生成了 XmlComments:属性 -> 构建选项卡 -> 输出 -> XML 文档文件)
我没有为我的发布配置做过这个(废话......) - 现在一切正常
由于 web.config 中的 customErrors 设置,Swashbuckle 隐藏了真正的错误消息。 如果您将 customErrors 设置为 off,您应该会得到更好的错误消息。
<system.web>
<customErrors mode="Off"/>
</system.web>
如已接受的答案中所述,您必须确保 XML 文档文件输出在bin 中,而不是bin\\Debug或bin\\Release (验证所有构建配置)。
我仍然收到 500 响应,因为我使用了多个 XML 文档文件。 在我的SwaggerConfig实现中,我包含来自两个项目(WebApi 项目本身和 WebApi 项目引用的类库)的 XML 文档文件:
c.IncludeXmlComments(string.Format(@"{0}\bin\MyWebApiProject.xml", System.AppDomain.CurrentDomain.BaseDirectory));
c.IncludeXmlComments(string.Format(@"{0}\bin\ReferencedProject.xml", System.AppDomain.CurrentDomain.BaseDirectory));
WebApi 项目的 XML 文档文件已正确发布到站点的 bin 文件夹,但引用项目的 XML 文档文件未正确发布(即使它出现在已编译项目的 bin 文件夹中)。
所以需要在文本编辑器中修改 WebApi 项目文件(.csproj),并在底部添加以下部分(替换ReferencedProject ):
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForMsdeployDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\ReferencedProject\bin\ReferencedProject.xml" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
请参阅如何使用 VS2010 Web 部署包包含其他文件? 以获得完整的解释。
接受的答案应该是您尝试的第一件事。
但是,我将 XML 输出设置为转到 App_Data\\ 并将我的 Swashbuckle 配置为从该目录读取,因此,构建它的方式并不重要:xml 文件将“存在”。 尽管如此,我仍然收到错误...
我在MSDN 的论坛上找到了@enough2012 的回答:
在“发布”对话框的“设置”窗格中的“文件发布选项”中选择“在目标位置删除其他文件”。
像魅力一样工作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.