【发布时间】:2020-11-16 17:43:38
【问题描述】:
我在 Windows 10 上遇到了一些 IIS 问题。
我有 2 个 .net Core (v 3.1) API 项目,便于测试。 第一个 API 项目有控制器,它只从常量返回字符串。第二个 API 项目有控制器和动作,它们从第一个项目调用 API 并返回这个值。没有别的了。
当我从 Visual Studio 将两个项目作为多项目运行时,一切正常。我用邮递员测试过。在邮递员中,我从第二个项目调用 api 方法,它从第一个项目调用 api 并返回测试字符串。极好的。但问题是当我将两个项目都发布到国际空间站时。这两个项目都在运作。当我从第一个项目调用方法时,它返回正确的值。当我从第二个项目中调用一些测试方法时,它可以工作。但是当我从第二个项目调用从第一个项目调用 api 的方法时,它失败并出现内部服务器错误 500。只有 500,没有子错误。我将 try catch 添加到 api 中,并且有这样的异常:
发生了一个或多个错误。 (无法建立 SSL 连接,请参阅内部异常。)无法建立 SSL 连接,请参阅内部异常。在 System.Threading.Tasks.Task.ThrowIfExceptional(布尔 includeTaskCanceledExceptions)
在 System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result()
在 PetaAPI2.Controllers.PetaController.Index() 在 C:\Users\micha\source\repos\TestAPI\PetaAPI2\Controllers\PetaController.cs:line 24System.Private.CoreLib
来自 IIS 的日志仅显示错误 500,没有其他内容。
我如何将项目发布到 IIS。
- 在磁盘上为第一个项目创建文件夹,为第二个项目创建下一个文件夹。
- 我从 iis 添加新的 Web。选择文件夹,为第一个 api 项目设置 https 和端口 5010。
- 我从 iis 添加新的 Web。选择文件夹,为第二个 api 项目设置 https 和端口 5011。
- 选择 SSL 证书:IIS Express 开发人员证书。两个项目相同。
- 就是这样。
每个 API 都在运行,但是当我调用从另一个项目(Web)调用 api 的 api 时发生错误 500。它作为从 Visual Studio 运行的多项目运行。
知道我的 IIS 网站上会出现什么问题吗?
https://localhost:5010/test/test - 好的,从 Postman 测试 https://localhost:5011/test/testexample - 好的,从 Postman 测试 https://localhost:5011/test/callanotherapi - (它必须只从 https://localhost:5010/test/test 返回数据)显示内部服务器错误 500。
对不起我的英语。谢谢, 迈克尔
【问题讨论】:
-
确保您在受信任的根目录下安装了证书,您安装了正确的 .net 核心托管捆绑包。检查 iis 日志以获取更多详细信息。启用iis详细错误:iis站点->错误页面->编辑功能设置->详细错误imgur.com/a/5XujX7i
标签: asp.net-core iis