我使用VS2017创建一个ASP.NET核心API应用程序,只是一个简单的应用程序..我甚至没有对它进行任何更改。它能够编译得很好,能够在IIS Express中调试就好了..你知道,默认的/ api /值返回{value1,value2} ..只是默认..
我尝试在Windows 10上的IIS 10中托管它。添加了一个将.NET CLR版本设置为“无托管代码”的应用程序池,将其他所有内容保留为默认值。使用发布到文件夹的VS2017,将IIS设置为指向该文件夹,将其设置为使用端口8080.尝试使用127.0.0.1:8080/api/values和HTTP错误500.19 - 内部服务器错误在浏览器中访问它。为什么?我没做什么?
在命令提示符下,输入dotnet --info显示版本为2.1.200,.net框架显示为2.0.7。事实上,我甚至可以通过输入“dotnet .dll”直接从命令提示符运行应用程序,它将显示在端口5000上的监听,并且我能够使用浏览器访问127.0.0.1:5000/api/values和{values1,values2}将出现在浏览器中。但为什么我不能使用IIS来托管它呢?
谈到使用命令提示符使用kestrel运行应用程序时,我注意到一件奇怪的事情。在configure中设置args,我能够使用url动态更改kestrel正在侦听的端口,并且我能够使用dotnet .dll --urls http:// *:5050启用对kestrel的远程访问,例如,它工作正常..但是......当我将端口设置为6000或更高时,kestrel会说它正在侦听该端口,但是远程客户端将无法访问它。有没有遇到过这个?使用5000~5999范围内的端口工作正常..为什么?
答案 0 :(得分:0)
确保以下内容:
详细信息请查看:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.0