Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
Asp.net 如何将.net核心web API部署为虚拟目录_Asp.net_Iis_Asp.net Core 3.1 - Fatal编程技术网

Asp.net 如何将.net核心web API部署为虚拟目录

Asp.net 如何将.net核心web API部署为虚拟目录,asp.net,iis,asp.net-core-3.1,Asp.net,Iis,Asp.net Core 3.1,我有一个asp.net网站在IIS与.net框架4.5。现在我想将.net核心web API作为虚拟目录添加到此asp.net网站 如何做到这一点?尝试命中控制器时,我收到500个内部服务器错误。首先将iis中的主机.net core site作为虚拟目录主机作为应用程序。因为.net core site在iis中不使用托管代码应用程序池,.net framework site使用.net clr版本4.0 您可以按照以下步骤在iis中托管.net核心站点: 1) 将网站作为文件夹从visual

我有一个asp.net网站在IIS与.net框架4.5。现在我想将.net核心web API作为虚拟目录添加到此asp.net网站


如何做到这一点?尝试命中控制器时,我收到500个内部服务器错误。

首先将iis中的主机.net core site作为虚拟目录主机作为应用程序。因为.net core site在iis中不使用托管代码应用程序池,.net framework site使用.net clr版本4.0

您可以按照以下步骤在iis中托管.net核心站点:

1) 将网站作为文件夹从visual studio发布

2) 确保下载并安装.net核心托管捆绑包和运行时

注意:根据您的版本下载

3) 在站点上单击鼠标右键,然后单击“添加应用程序”。设置从visual studio发布站点的文件夹路径

4) 确保应用程序池>流程模型>标识设置为ApplicationPoolIdentity,或者您的自定义标识具有访问应用程序部署文件夹的正确权限

5) 创建一个新的应用程序池。将应用程序池.NET CLR版本设置为无托管代码:

从应用程序高级设置修改应用程序池

现在你可以浏览这个网站了

iis中的文件夹结构:


你看过这篇文章吗。它就像java现在的开发版本和运行时版本一样。因此,您需要安装运行时版本,并将工作…感谢您的详细回答。我有一个问题。将.net核心web api托管为虚拟目录不可行?是否有任何特定的原因将其作为子应用程序而不是虚拟目录部署?@Developer host作为应用程序部署。因为.net core站点在iis中不使用托管代码应用程序池,.net framework站点使用.net clr 4.0版。如果将.net core站点作为虚拟目录托管在iis中,则无法设置其他应用程序池。