【发布时间】:2018-05-29 18:33:29
【问题描述】:
我使用 VS2017 创建了一个 ASP.NET core API 应用程序,只是一个简单的应用程序。我什至没有对其进行任何更改。它能够编译得很好,能够在 IIS Express 中调试得很好.. 你知道,默认 /api/values 返回 {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 运行应用程序时,我注意到一件奇怪的事情。在配置中设置参数,我能够使用 urls 来动态更改 kestrel 正在侦听的端口,并且我能够使用 dotnet .dll --urls http://*:5050 启用对 kestrel 的远程访问,例如,它工作正常.. 但是.. 当我将端口设置为 6000 或更高时,红隼会说它正在侦听该端口,但远程客户端将无法访问它。有没有人遇到过这个?使用 5000~5999 范围内的端口可以正常工作.. 为什么?
【问题讨论】: