如何从powershell创建IIS网站以承载.net core 2.0应用程序

如何从powershell创建IIS网站以承载.net core 2.0应用程序,powershell,iis,.net-core,Powershell,Iis,.net Core,预期结果: IIS正确承载我的应用程序,当我导航到我的应用程序的url(例如:blabla/swagger)时,我会看到描述我的应用程序的swagger UI 问题: 当我尝试导航到我的应用程序时,它会显示: HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.

预期结果

IIS正确承载我的应用程序,当我导航到我的应用程序的url(例如:blabla/swagger)时,我会看到描述我的应用程序的swagger UI

问题

当我尝试导航到我的应用程序时,它会显示:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
信息

我在.NETCore2.0中构建了一个应用程序,我可以让它通过VisualStudio运行,由Kestrel主持。 但是,我需要将此应用程序部署到不同的服务器,因为Kestrel不支持主机名,所以我需要将其托管在IIS中。当我让它通过Kestrel运行时,我能够正确地访问它,并且通过导航到url/招摇过市地址,我能够看到描述应用程序的正确招摇过市页面。 正在从visual studio发布我的应用程序。这意味着在其发布的文件夹中有应用程序所需的所有DLL。它被发布为一个依赖于框架的应用程序,而不是一个独立的应用程序,但这并不重要

如何复制问题

由于我需要有一天将其托管在Docker容器内的IIS中,因此我尝试使用powershell脚本将其托管在IIS中。我所做的是将其托管在IIS中:

New-Website -Name 'myTestApp' -force -Port 8080 -PhysicalPath
'C:\Users\myUser\Desktop\Docker\PublishOutput' -ApplicationPool 'MyAppPoolTest'
其中C:\Users\myUser\Desktop\Docker\PublishOutput是Visual Studio发布应用程序的已发布文件夹的路径。提前谢谢

编辑:

这是Visual studio在发布时生成的web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Friss.CaseApi.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 313d542d-7676-4440-ae1b-22c6071f4309-->

错误2:


由于错误代码为0x80070005且配置错误为“由于权限不足而无法读取配置文件”,因此您应授予IIS\u IUSRSPublishOutput文件夹的权限

在IIS上托管用户文件夹(
C:\Users\someone
)中的文件内容并忘记授予此类权限是一个典型的错误


有关IIS问题的其他典型ASP.NET核心,请阅读。

@mjwills使用web.config编辑。整个错误页面非常重要,因为它包含所需的其他信息。类似的内容可能会让您开始。@LexLi上载了完整的错误页。由于错误代码为0x80070005,配置错误为“权限不足,无法读取配置文件”,您应该授予PublishOutput文件夹上的IIS_IUSRS权限。在IIS上承载用户文件夹(C:\Users\someone)中的文件内容并忘记授予此类权限是一个典型的错误。这确实是一个错误。。我会用完全相同的设置问题打开另一张罚单,因为在解决此错误后,我将面临另一张无法解释的罚单。非常感谢你的帮助@LexLi:)我编辑了这个问题。。现在出现的错误与以前的错误相差不远,这就是我编辑它并上传截图的原因。仍然是相同类型的错误页面,但是没有关于它的信息time@Tarta查看我在前面的评论中列出的博客帖子。它谈到了这一点。