繁体   English   中英

承载 ASP 核心 API 的 IIS

[英]IIS hosting an ASP Core API

得到了下面的问题与Web API我一直在工作,我的问题就在于内我应该如何在Web API与IIS(在Windows Server 2012 R2),考虑到我一直在关注这个文件的事实配置为工作方向我仍然收到“无法显示此页面”浏览器错误:

Windows Server 托管在 Azure 上。

我什至添加了与 IIS 身份验证相关的这部分(认为这可能不会导致我的问题),添加/删除它没有任何影响。

 public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddOptions();

        services.Configure<IISOptions>(options =>
        {
            options.ForwardWindowsAuthentication = false;
        });
     }

就像我创建publish文件夹的方式一样,我进行了如下操作:

dotnet publish

这导致以下文件夹结构

  • 参考
  • 运行时
  • 许多 .dll(对各种程序集的引用,例如 aspnetcore.mvc、httpclient 等)
  • 网页配置
  • mywebAPI.deps(带有依赖项的 json 文件)
  • 我的webAPI.dll
  • mywebAPI.pdb
  • appsettings.JSON

根据目录结构,我确实错过了 wwwroot 和 Views,因为我在project.json隐式提到了它们,但我不需要它们,因为我有一个 web api 而不是 web 表单应用程序。

"publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  }

在 IIS 上配置步骤 在我放置发布结果的主驱动器上创建了一个文件夹。 转到 IIS 管理器并添加一个新网站转到应用程序池并将 .NET CLR 版本设置为“无托管代码”

在此处输入图片说明

启动应用程序让我直接进入这个浏览器错误 - 此页面无法显示

从 CMD dotnet mywebapi.dll WORKS 运行...我已经用邮递员测试过它(在 Windows 服务器上有邮递员)。

在此处输入图片说明

您需要更多信息。

.\\logs\\stdout启用并检查应用程序日志

<system.webServer>
    <handlers>
      <add 
         name="aspNetCore" 
         path="*" 
         verb="*" 
         modules="AspNetCoreModule" 
         resourceType="Unspecified"/>
    </handlers>
    <aspNetCore 
         processPath=".\MyApp.exe" 
         arguments="%LAUNCHER_ARGS%" 
         stdoutLogEnabled="false"                  <--- enable
         stdoutLogFile=".\logs\stdout" />          <--- set path
  </system.webServer>
</configuration>

检查 IIS 日志(您可能不必先启用它们)。 事件查看器 > Windows 日志 > 应用程序。 要向下钻取,您可以按事件级别等过滤当前日志...。

IIS 应用程序日志

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM