ASP.Net Core 2.2在IIS部署的问题

4

我是.Net Core环境的新手,在将应用程序部署到IIS时遇到了问题。

发布代码并将其部署到IIS服务器(版本7)后,我可以通过进入托管应用程序的目录并运行以下命令来从Kestrel启动应用程序:

c:\inetpub\demoapp\dotnet "My App.dll"

通过运行上述命令,Kestrel在http://localhost:5000上运行,并且我可以从浏览器中访问。 我正在使用最新的.Net Core版本2.2。

但是,当我尝试从IIS托管的应用程序执行URL时,我会收到以下错误:

HTTP错误502.5-ANCM Out-Of-Process Startup Failure

以下是Windows应用程序日志中的事件日志。

物理根为'C:\ inetpub \ demoapp \'的应用程序'/ LM / W3SVC / 49 / ROOT / demoapp'在多次重试后未能使用命令行'dotnet .\ MyApp Web.dll'启动进程。 最后一次尝试监听端口是“2405”。有关详细信息,请参见以前的警告。

有谁知道如何解决这个问题吗?


2405端口可用吗? - Derviş Kayımbaşıoğlu
请查看以下链接:https://github.com/aspnet/IISIntegration/issues/616#issuecomment-369138733 - Derviş Kayımbaşıoğlu
谢谢Simonare!那个端口每次都在变。我也尝试了Git Hub的链接,但不幸的是没有解决方案适用于我。 - Dharmesh Solanki
打开 web.config 文件并给进程名称加上引号(因为它包含空格)。 - Lex Li
嗨,Lex Li...感谢您的回复...我尝试设置web.config条目如下,但不起作用。<aspNetCore processPath="dotnet.exe" arguments="'.\My App.dll'" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" /> - Dharmesh Solanki
显示剩余3条评论
1个回答

0

在我的情况下,这是win-64架构问题。

您可以将架构从win-64更改或切换到win-86,然后发布,并不要忘记在IIS管理器中更改启用32位应用程序

  • 右键单击应用程序池,选择“高级设置…” 或在选择应用程序池后从操作窗格中选择相同的选项。

  • 将“启用32位应用程序”更改为True(如果您希望应用程序池以32位模式生成) 点击确定。

p.s.:不要忘记删除现有的已发布文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接