代码之家  ›  专栏  ›  技术社区  ›  André Luiz

在IIS 8.5上托管Asp.net Core 2.0时出现问题

  •  0
  • André Luiz  · 技术社区  · 6 年前

    我正在设置一个服务器来承载我用asp.net Core 2.0.3创建的应用程序。我将使用IIS 8.5在Windows Server 2012 R2服务器上运行此应用程序。我跟着 this Microsoft Tutorial 去创造环境。

    如果我跑 (dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'shared\Microsoft.NETCore.App')).Name 在电源外壳里。它告诉我我正在运行正确版本的运行时环境,并通过运行 dotnet MyProject.dll 它在5000号门上运行项目,我可以从服务器访问它。但是当访问服务器URL时,这是我看到的页面: enter image description here

    应用程序池的.Net CLR版本设置为“无托管代码”,这是my Web.config:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
       <system.webServer>
          <rewrite>
             <rules>
                <clear />
                <rule name="Redirect to https" stopProcessing="true">
                   <match url=".*" />
                   <conditions>
                      <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                   </conditions>
                   <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
                </rule>
             </rules>
          </rewrite>
          <modules runAllManagedModulesForAllRequests="false">
             <remove name="WebDAVModule" />
          </modules>
          <handlers>
             <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
          </handlers>
          <aspNetCore processPath="dotnet" arguments="C:\inetpub\wwwroot\MyApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
          <security>
             <requestFiltering>
                <requestLimits maxAllowedContentLength="3221225472" />
             </requestFiltering>
          </security>
       </system.webServer>
    </configuration>
    

    我还试图删除重写规则,但没有任何更改。并且没有创建错误日志。

    我不知道还能做什么。你有什么建议吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mohsin Mehmood    6 年前
    1. 请确保已安装UrlRewrite IIS扩展。
    2. 确保应用程序池标识用户IIS AppPool{AppPoolName}必须对已发布的网站文件夹具有读取权限

    转到已发布的网站目录,搜索具有格式IIS AppPool{AppPool Name}的应用程序池标识用户,例如IIS AppPool\DefaultWebsite并授予其读取权限

    enter image description here

    在IIS管理器的左窗格中选择您的网站,然后在右窗格中双击HandlerMappings图标以确保显示handlers列表。