将.netCore代码编译后,使用dotnet命令可以运行起来,但是使用IIS添加编译后代码目录就不行。
仔细对比编译后和发布后的代码,可以发现,文件都一样,只是发布后的多了一个web.config
将web.config copy到编译后的目录中,IIS就可以成功运行了。
比如我现在有一个.netCore的程序,叫做WebCoreDemo,使用cmd执行编译后的程序的命令是dotnet WebCoreDemo.dll,然后就可以使用localhost:5000(或者5001)访问
那么现在再看发布后的web.config,可以发现 有一个aspNetCore节点,processPath就是执行的命令,arguments就是需要执行命令的内容,和之前命令行中的内容都是一致的。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\WebCoreDemo.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
这只是个人的一点浅显的理解,如有不足或错误的地方,还望指出,感谢!