dev*_*2go 48 asp.net-core-mvc asp.net-core
我们有一台Windows 2012 R2计算机.我有一个现有的ASP.NET核心站点,它有一个运行的已发布的ASP.NET核心站点.
但是,当我在更改后一个月后再次发布到网站时,我无法访问该网站并在浏览器中收到以下错误
HTTP错误502.5 - 进程失败
有关详细信息,请访问:http://go.microsoft.com/fwlink/?LinkID = 808681
如果我登录到服务器并单击我部署目录中的exe,它会打开一个命令提示符并在端口5000上显示我的站点.如果我在http:// localhost:5000上访问该站点,它可以正常工作,所以问题是要做与IIS而不是网站本身.
如果我登录到服务器,我可以在Windows EventViewer中看到以下内容
具有物理根"D:\ Sites\MySite"的应用程序'MACHINE/WEBROOT/APPHOST/DEFAULT WEB SITE/MySite'无法使用命令行'"%LAUNCHER_PATH%"%LAUNCHER_ARGS%'启动进程,ErrorCode ='0x80070002:0.
当我访问浏览器错误消息中的链接时,它提到重新安装.net Core Hosting捆绑包,我做了.但是,浏览器中的错误消息是相同的.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore requestTimeout="02:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
当我查看我的应用程序日志文件夹时,每次尝试访问此站点时都会创建一个stdout文件,但每次它的大小为0KB且为空内容时.
为什么IIS拒绝在以前工作的地方突然工作,但如果我直接访问编译的exe,应用程序是否有效?
SO *_*ood 41
你的问题是一个糟糕的web.config文件:
<aspNetCore requestTimeout="02:00:00"
processPath="%LAUNCHER_PATH%"
arguments="%LAUNCHER_ARGS%"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
forwardWindowsAuthToken="false" />
Run Code Online (Sandbox Code Playgroud)
路径%LAUNCHER_PATH%在您的系统上不存在,甚至无效.它应该是这样的:
<aspNetCore requestTimeout="02:00:00"
processPath=".\yourAppName.exe"
arguments="somePossibleArgument"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
forwardWindowsAuthToken="false" />
Run Code Online (Sandbox Code Playgroud)
请注意,如果从命令行启动应用程序,则会完全忽略web.config文件,这就是您没有收到错误的原因.
Akb*_*sha 36
我有同样的问题,我的问题是IIS无法获得dotnet的路径.我能够通过指定dotnet.exe的路径来修复它
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments=".\your-project.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"/>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我的问题是由于我的appsettings.json文件中的转义序列无效,进程无法启动.
我正在使用dotnet来运行已发布的ASPNET Core 2 web api dll.通过打开命令提示符并导航到站点文件所在的目录,可以发现问题.在那里,我运行命令:
dotnet mySite.dll
(将mySite.dll更改为应用程序的主dll.此外,请确保已安装正确版本的.NET Core Windows Server Hosting包).
按回车键,它立即崩溃,在控制台窗口中显示错误的确切反馈.如果您遇到类似的麻烦,这是帮助确定启动错误的好方法.
小智 7
问题:当我部署 asp net core web API 时,processPath 设置为 dotnet。该应用程序未启动,事件查看器显示上述错误。
解决方案:
应设置应用程序池标识以加载配置文件。
导航到:应用程序池 -> NetCore(您的池)-> 高级设置 -> 加载用户配置文件 ----> 将此设置为 true
我验证转向 false 重新创建错误并设置回 true 解决了它。
我有类似的问题。我只是按照故障排除步骤进行操作:
Check the system event log for error messages并从事件查看器中找到以下内容,Application 'MACHINE/WEBROOT/APPHOST/[MyFolder]' with physical root 'C:\inetpub\wwwroot\[MyFolder]\' failed to start process with commandline 'dotnet .\MyApp.dll', ErrorCode = '0x80004005 : 80008083.
dotnet .\MyApp.dll然后我从终端重新运行并得到答案:
It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.App', version '2.1.1' was not found.
- Check application dependencies and target a framework version installed at:
\
- Alternatively, install the framework version '2.1.1'.
Run Code Online (Sandbox Code Playgroud)
所以原因和jv_回答的一样,只是你没有安装兼容的框架版本。我最终使用了“独立”部署模式并且它起作用了。
| 归档时间: |
|
| 查看次数: |
57249 次 |
| 最近记录: |