Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.Net核心模块不是从IIS启动的,只能从命令行启动_.net_Windows_Iis_Web Config_Asp.net Core 3.1 - Fatal编程技术网

.Net核心模块不是从IIS启动的,只能从命令行启动

.Net核心模块不是从IIS启动的,只能从命令行启动,.net,windows,iis,web-config,asp.net-core-3.1,.net,Windows,Iis,Web Config,Asp.net Core 3.1,我正在通过运行在Windows 10上的IIS部署.Net应用程序。Web.config处理正确,IIS不会报告任何问题。但是,aspnetcore模块尚未启动,我无法浏览该站点。 如果我从命令行运行dotnet dllname,那么我的站点工作正常。这是一项令人沮丧的努力。IIS日志没有提供任何线索,说明为什么IIS无法像dotnet那样从命令行启动站点。尝试启用aspnetcore增强跟踪没有任何作用。这是我的web.config: <configuration> <lo

我正在通过运行在Windows 10上的IIS部署.Net应用程序。Web.config处理正确,IIS不会报告任何问题。但是,aspnetcore模块尚未启动,我无法浏览该站点。 如果我从命令行运行dotnet dllname,那么我的站点工作正常。这是一项令人沮丧的努力。IIS日志没有提供任何线索,说明为什么IIS无法像dotnet那样从命令行启动站点。尝试启用aspnetcore增强跟踪没有任何作用。这是我的web.config:

<configuration>
 <location path="." inheritInChildApplications="false">
   <system.webServer>
     <handlers>
       <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
     </handlers>
     <aspNetCore processPath="c:\Program Files\dotnet\dotnet.exe" arguments="c:\escompdata2\ESTemplateCompData.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
       <handlerSettings>
         <handlerSetting name="debugFile" value=".\logs\aspnetcore-debug.log" />
         <handlerSetting name="debugLevel" value="FILE,TRACE" />
      </handlerSettings>
     </aspNetCore>
   </system.webServer>
 </location>
   <system.webServer>
       <rewrite>
           <rules>
               <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                   <match url="(.*)" />
                   <action type="Rewrite" url="http://escompdata:5000/{R:1}" />
               </rule>
           </rules>
       </rewrite>
   </system.webServer>
</configuration>

以下是高级设置的屏幕截图 我正在为我的站点设置反向代理,当从命令行启动dotnet应用程序时,IIS运行良好,这似乎表明该站点至少在IIS中设置正确


问题是IIS似乎无法通过dotnet或应用程序可执行文件启动应用程序。我还没有尝试过Kestrel服务器的out或process模式,但这是一个令人费解的部分。IIS似乎无法通过日志提供任何线索。非常感谢您提供的任何帮助。

IIS需要安装适当的托管捆绑包才能托管您的.Net核心应用程序。例如,如果您有一个.Net Core 3.1应用程序,则需要安装.Net Core 3.1托管捆绑包。IIS不支持执行现成的.Net核心应用程序。这个参考资料应该可以让你开始


导致502.3坏网关错误的原因有很多。您需要做的第一件事是确定错误的原因


此链接提供了排除502.3错误的步骤:。

我打电话给Microsoft,他们告诉我发生了什么。我告诉IIS代理到localhost:5000,这是应用程序在命令行使用dotnet命令启动时侦听的内容。但是,当IIS启动应用程序时,它不会使用该端口。关键是告诉IIS将应用程序绑定到端口80,而不是我告诉它的5000,并在URL重写部分将操作设置为“无”。这使我可以浏览应用程序。

运行报告以显示更多信息,您如何确认无法启动aspnetcore模块?浏览器或iis中是否有任何错误消息?我更新了web.config,通过iis设置代理信息重新启动服务器并浏览到站点我收到错误502.3错误网关我已明确验证iis没有使用dotnet启动模块。首先,当我列出计算机上运行的所有进程时,dotnet不包括在内,就像我使用项目dll从命令行运行dotnet时一样。其次,应用程序应该正在侦听localhost:5000。当我浏览到那个链接时,它失败了,这验证了没有人在听。这应该是一个简单的问题。不幸的是,我无法找出根本原因。你要做的第一件事就是确认是什么导致了这个错误,你可以尝试我下面提到的方法。谢谢@FrankJames。我确实立即安装了主机包。这应该是一个不需要动脑筋的问题,你告诉IIS可执行文件,它就会产生它。我在托管NodeJS应用程序和使用iisnode模块时也遇到同样的问题。我正在做一些事情,阻止IIS启动适当的模块,但无法确定它是什么。与dotnet一样,我可以从命令行启动节点,IIS代理将请求转发到服务器,而不会出现任何问题。