我在 IIS 8 中托管一个在 ASP.NET 5、MVC 6 和 EF7 中开发的应用程序。我为可通过 http://localhost/api
访问的应用程序创建了 API,并且我创建了几个 Controller 来访问数据。
当我从 visual studio 访问 API 时,一切正常,并且我能够检索回 JSON 数据。但是当我托管应用程序 IIS 8 和浏览器 localhost/api/controller
时,IIS 日志中出现 500
错误。我还在 Windows Server 2012 r2 服务器上安装了 http platform handler 1.2
。我实际上能够浏览静态页面和其他链接,如 localhost/home
,但是当我尝试访问 api Controller 时,我得到 500 错误代码。
现在,当我使用应用程序中的执行 web.cmd
文件自行托管应用程序并浏览 localhost:5000/api/controller
时,我能够检索 json数据返回,但不是来自 IIS 托管站点。
因为我不知道问题出在哪里,所以我启用了Failed request tracing rules
并且我能够捕获带有 500 错误的日志。下面是截图:
最佳答案
没有从你失败的请求日志中得到这个,但我可能会建议通常的怀疑,因为你说它在 IIS 之外工作:
确认应用程序池设置为与 .NET 5.0 一起使用,并且未设置为不同的 CLR,如 2.0 或 4.0。 (实际上是这样,因为非 API MVC Controller 在那种情况下根本无法工作...)
如果将 NTLM 安全性与 SQL 结合使用,请确认应用程序池正在使用具有足够数据库权限的帐户运行,因为从 Visual Studio 运行 IIS Express 与从 IIS 运行时,执行上下文可能不同。
我还建议检查 Windows 错误日志,而不仅仅是请求跟踪....
关于c# - EF7 应用程序出现 ASP.NET 5 IIS 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35236600/