IIS 托管 ASP 核心 API
IIS hosting an ASP Core API
我一直在处理 Web API 的以下问题,我的问题在于我应该如何配置 Web API 以与 IIS 一起工作(Windows Server 2012 R2) 考虑到我一直在关注此文档的 directions 但我仍然收到“无法显示此页面”浏览器错误:
Windows 服务器托管在 Azure 上。
我什至添加了与IIS身份验证相关的部分(认为这可能不会导致我的问题),adding/removing它没有任何作用。
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddOptions();
services.Configure<IISOptions>(options =>
{
options.ForwardWindowsAuthentication = false;
});
}
关于我如何创建我的 publish
文件夹,我进行了以下操作:
dotnet publish
这导致了以下文件夹结构
- 参考
- 运行时间
- 大量 .dll(对 aspnetcore.mvc、httpclient 等各种程序集的引用)
- web.config
- mywebAPI.deps(json 具有依赖项的文件)
- mywebAPI.dll
- mywebAPI.pdb
- appsettings.JSON
根据 directory structure,我确实想念 wwwroot 和 Views,因为我在 project.json
中隐含地提到了它们,但我不需要它们,因为我有一个网络 api而不是 Web 表单应用程序。
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
}
在 IIS 上配置步骤
在我放置发布结果的主驱动器上创建了一个文件夹。
转到 IIS 管理器并添加了一个新网站
转到应用程序池并将 .NET CLR 版本设置为 'No Managed Code'
启动应用程序让我直接陷入浏览器错误 - 此页面无法显示
运行 来自 CMD dotnet mywebapi.dll WORKS...我已经用 Postman 测试了它(在 Windows 服务器上有 postman)。
您需要更多信息。
在 .\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 日志 > 应用程序。要向下钻取,您可以按事件级别等过滤当前日志...
我一直在处理 Web API 的以下问题,我的问题在于我应该如何配置 Web API 以与 IIS 一起工作(Windows Server 2012 R2) 考虑到我一直在关注此文档的 directions 但我仍然收到“无法显示此页面”浏览器错误:
Windows 服务器托管在 Azure 上。
我什至添加了与IIS身份验证相关的部分(认为这可能不会导致我的问题),adding/removing它没有任何作用。
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddOptions();
services.Configure<IISOptions>(options =>
{
options.ForwardWindowsAuthentication = false;
});
}
关于我如何创建我的 publish
文件夹,我进行了以下操作:
dotnet publish
这导致了以下文件夹结构
- 参考
- 运行时间
- 大量 .dll(对 aspnetcore.mvc、httpclient 等各种程序集的引用)
- web.config
- mywebAPI.deps(json 具有依赖项的文件)
- mywebAPI.dll
- mywebAPI.pdb
- appsettings.JSON
根据 directory structure,我确实想念 wwwroot 和 Views,因为我在 project.json
中隐含地提到了它们,但我不需要它们,因为我有一个网络 api而不是 Web 表单应用程序。
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
}
在 IIS 上配置步骤 在我放置发布结果的主驱动器上创建了一个文件夹。 转到 IIS 管理器并添加了一个新网站 转到应用程序池并将 .NET CLR 版本设置为 'No Managed Code'
启动应用程序让我直接陷入浏览器错误 - 此页面无法显示
运行 来自 CMD dotnet mywebapi.dll WORKS...我已经用 Postman 测试了它(在 Windows 服务器上有 postman)。
您需要更多信息。
在 .\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 日志 > 应用程序。要向下钻取,您可以按事件级别等过滤当前日志...