如何将IIS服务器配置为承载两个应用程序,其中一个应用程序应为默认应用程序

如何将IIS服务器配置为承载两个应用程序,其中一个应用程序应为默认应用程序,iis,asp.net-web-api,asp.net-core,web,Iis,Asp.net Web Api,Asp.net Core,Web,我有两份申请: X.Web-Asp.net核心1.1 Web应用程序 X.Api-ASP.NET 4.6.1中的ASP.NET WebApi2应用程序 现在它们分别以www.example.com/X.Web和www.example.com/X.Api的形式提供。我的客户希望web应用程序只需www.example.com即可使用 我在我的测试环境中尝试了一个快速的解决方案——我只是将X.Web文件夹的内容移动到wwwroot,没有任何问题,一切正常 然而,在我的生产服务器上,web应用程序

我有两份申请:

  • X.Web-Asp.net核心1.1 Web应用程序
  • X.Api-ASP.NET 4.6.1中的ASP.NET WebApi2应用程序
现在它们分别以www.example.com/X.Web和www.example.com/X.Api的形式提供。我的客户希望web应用程序只需www.example.com即可使用

我在我的测试环境中尝试了一个快速的解决方案——我只是将X.Web文件夹的内容移动到wwwroot,没有任何问题,一切正常

然而,在我的生产服务器上,web应用程序可以工作——htmls、脚本和样式加载正确,但X.Api停止工作——我得到了响应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"         
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title> IIS 502.5 Error </title>
        <style type="text/css"></style>
    </head>
    <body>
        <div id = "content">
            <div class = "content-container">
                <h3> HTTP Error 502.5 - Process Failure </h3>
            </div>
            <div class = "content-container">
                <fieldset>
                    <h4> Common causes of this issue: </h4>
                    <ul>
                        <li> The application process failed to start </li>
                        <li> The application process started but then stopped </li>
                    <li> The application process started but failed to listen on the configured port </li>
                </ul>
            </fieldset>
        </div>
        <div class = "content-container">
            <fieldset>
                <h4> Troubleshooting steps: </h4>
                <ul>
                    <li> Check the system event log for error messages </li>
                    <li> Enable logging the application process’ stdout messages </li>
                    <li> Attach a debugger to the application process and inspect </li>
                </ul>
            </fieldset>
            <fieldset>
                <h4> For more information visit:              
                    <a href="https://go.microsoft.com/fwlink/?linkid=808681">
                        <cite> https://go.microsoft.com/fwlink/?LinkID=808681 </cite>
                        </a>
                    </h4>
                </fieldset>
            </div>
        </div>
    </body>
</html>
问题是: 1) 有什么问题吗 2) 为什么在事件日志中我可以看到…启动进程失败 使用命令行的“dotnet”**X.Web.dll**。。。
3) 有没有其他方法来实现我的客户的这个简单要求呢?所以,为了确保我正确地理解你,一开始,你有:www.example.com/X.Web和www.example.com/X.Api,而X.Web正在调用X.Api,对吗?然后您将X.Web文件从wwwroot/X.Web直接移动到wwwroot,它在您的环境中工作,但在生产环境中不工作?您正在使用哪个版本的IIS

1/可能是一个想法:通过移动X.Web,您可能更改了运行X.Web应用程序的用户,使其无法启动ASP.NET核心应用程序

2/我对1的建议可以解释,证书问题


3/我将明确避免将X.Web文件直接放在wwwroot下,而是将IIS配置为从www.example.com重定向到www.example.com/X.Wep。您可以使用(在这种情况下可能有点过分,但我认为这是一个非常好的模块,因为它可以在各种情况下提供帮助)或简单地将IIS配置为重定向,这样线程可能会有所帮助

是的-您完全理解它。我在测试和产品环境中都使用IIS8.5。1,2)-我不这么认为(但不是100%确定)。当两个应用程序都在它们的文件夹中时,我可以从postman调用Api。作为一个实验,我将内容从X.Web复制到根文件夹,API停止响应——每个邮递员请求都被拒绝。当我简单地删除复制的文件时,Api开始再次响应我的邮递员请求。3) 我一定会尝试URL重写模块谢谢。我检查了URL重写-它工作得很好,谢谢你的提示无需担心,它是一个很好的工具,可以在许多场合使用。我目前正在使用它来模拟负载平衡器。
Application 'MACHINE/WEBROOT/APPHOST/DEFAULT WEB SITE/X.API' with 
physical root 'C:\inetpub\wwwroot\X.Api\' failed to start process 
with commandline '"dotnet" .\X.Web.dll', ErrorCode = 
'0x80004005 : 80008081.