C# 对swagger api帮助页使用XmlComment

C# 对swagger api帮助页使用XmlComment,c#,azure,asp.net-core,swagger,C#,Azure,Asp.net Core,Swagger,我在尝试为新启动的ASP.NET核心api项目配置swagger时出错。它可以在本地主机上完美地工作:注释可以很好地与xml注释配合使用。但当我将它发布到azure主机时,它就不起作用了 然后,我试图找出注释的方式,即将xml注释添加到swagger的配置代码: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddMvcCore().AddApiE

我在尝试为新启动的ASP.NET核心api项目配置swagger时出错。它可以在本地主机上完美地工作:注释可以很好地与xml注释配合使用。但当我将它发布到azure主机时,它就不起作用了

然后,我试图找出注释的方式,即将xml注释添加到swagger的配置代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddMvcCore().AddApiExplorer();
    services.AddLogging();
    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new RequireHttpsAttribute());
    });

    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info
        {
            Version = "v1",
            Title = " API Helper Page",
            Description = "A simple start ASP.NET Core Web API/ MBAAS",
            TermsOfService = "None",
            Contact = new Contact { Name = "Nguyễn Bá Nguyên", Email = "", Url = "https://github.com/hello/" },
            License = new License { Name = "Under Construction...", Url = " " }
        });
        // Set the comments path for the swagger json and ui.
        // only working on local, need to be fixed
        var basePath = PlatformServices.Default.Application.ApplicationBasePath;
        var xmlPath = Path.Combine(basePath, ".xml");
        c.IncludeXmlComments(xmlPath);
    });

}
azure主机工作正常,但swagger无法使用xml注释:(


那么,有没有办法配置swagger以使用azure主机的xml注释呢?

我在azure API应用程序上使用.NET core的swagger xml注释时遇到了同样的问题。在我将web.config中的
stdoutLogEnabled
标志设置为
true
后,我发现xml文件丢失了手动添加到它工作的API

要上载XML文件,您可以使用Kudu服务(键入
.scm.azurewebsites.net
,或在Azure门户->开发工具->高级工具的应用程序中)。然后单击调试控制台,导航到您的站点并上载XML文件:


实际上我不知道PlatformServices.Default.Application.ApplicationBasePath如何找到xml注释文件(当我们配置:解决方案资源管理器->属性->构建->输出->单击xml文档文件的复选框并选择输出路径时自动生成)@MartinBrandl:既然可以通过project.json/csproj设置要发布的文件,为什么还要手动上传?XD@Tseng你是对的,这可能是正确的。无论如何,他的问题的答案是XML文件丢失了,因此API无法启动。我更感兴趣的是,为什么他的代码首先在本地工作,因为他在梳理带有“.xml”且没有文件名的基本路径,其结果应该是类似于
X:\MyProj\Project.WebApi\bin\Debug\netcoreapp1.1\.xml
的路径,而不是
X:\MyProj\Project.WebApi\bin\Debug\netcoreapp1.1\Project.WebApi.xml
,因为我的xml文件是“.xml”:)尝试在项目中显式地包含生成的xml文件,然后,它应该包含在发布到azure步骤中,并且无需通过kudu/FTP手动上载即可使用。@rory_za您知道PlatformServices.Default.Application.ApplicationBasePath如何找到xml注释文件吗(当我们配置:解决方案资源管理器->属性->构建->输出->单击XML文档文件的复选框并选择输出路径时,会自动生成哪个文件)。那么,我应该将自动生成的XML文件包括在何处?将其设置为生成文件,然后至少生成一次项目,然后将生成的文件作为“现有项”添加即可你的项目。
 //var basePath = PlatformServices.Default.Application.ApplicationBasePath;
                //var xmlPath = Path.Combine(basePath, ".xml");
                //c.IncludeXmlComments(xmlPath

);