Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF7应用程序出现ASP.NET 5 IIS 500错误_C#_Asp.net_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# EF7应用程序出现ASP.NET 5 IIS 500错误

C# EF7应用程序出现ASP.NET 5 IIS 500错误,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我在IIS 8中托管一个应用程序,该应用程序是在ASP.NET 5、MVC 6和EF7中开发的。我已经为应用程序创建了API,可通过http://localhost/api我还创建了几个控制器来访问数据 当我从VisualStudio访问API时,一切正常,并且我能够检索JSON数据。但是,当我托管应用程序IIS 8和浏览器localhost/api/controller时,IIS日志中会出现500错误。我还在windows server 2012 r2服务器上安装了http平台处理程序1.2。

我在IIS 8中托管一个应用程序,该应用程序是在ASP.NET 5、MVC 6和EF7中开发的。我已经为应用程序创建了API,可通过
http://localhost/api
我还创建了几个控制器来访问数据

当我从VisualStudio访问API时,一切正常,并且我能够检索JSON数据。但是,当我托管应用程序IIS 8和浏览器
localhost/api/controller
时,IIS日志中会出现
500
错误。我还在windows server 2012 r2服务器上安装了
http平台处理程序1.2
。实际上,我可以浏览静态页面和其他链接,如
localhost/home
,但当我尝试访问api控制器时,返回了500个错误代码

现在,当我从应用程序中使用execute
web.cmd
文件自托管应用程序并浏览
localhost:5000/api/controller
时,我可以从IIS托管的站点检索json数据,但不能从IIS托管的站点检索json数据

由于我不知道问题出在哪里,我启用了
失败的请求跟踪规则
,并且能够捕获500个错误的日志。以下是截图:


这不是从失败的请求日志中获得的,但我可以建议您使用常见的可疑方法,因为您说它在IIS之外工作:

  • 确认应用程序池已设置为与.NET 5.0一起使用,并且未设置为其他CLR,如2.0或4.0。(实际上是这样,因为在这种情况下,非API MVC控制器根本无法工作…)

  • 如果将NTLM security与SQL一起使用,请确认应用程序池正在使用具有足够数据库权限的帐户运行,因为从Visual Studio运行IIS Express与从IIS运行IIS Express时,执行上下文可能不同


  • 我还建议检查Windows错误日志,而不仅仅是请求跟踪…

    您的启动类中是否有以下行:
    app.UseIISPlatformHandler()?是的,我可以浏览应用程序主页,而不是
    api/controller
    。当前应用程序池设置为
    无管理代码
    CLR版本。我还在startup.cs文件中为SQL连接硬编码连接字符串,因为它不使用windows服务帐户进行连接。我是否仍应将应用程序池标识设置为服务帐户或本地系统?我在事件日志中未发现任何错误,这就是我在此处打开此问题的原因:(实际上,ASP.NET 5没有正确的管理代码:您可以在IIS日志中查找500错误的子代码,有时包含更多信息。上面的链接引用了一些可能的500个错误…我会尝试暂时将应用程序池帐户设置为您的用户,以查看更改是否重要…因为您很喜欢我希望有足够的权限…对于prod,我会创建一个服务帐户。是的,我也尝试了该链接。我不认为我面临应用程序问题。我猜http平台处理程序无法正确路由api请求。好的,服务帐户似乎工作了!:)我想知道为什么它要求我设置服务帐户来访问API,因为应用程序标识允许我访问其他MVC页面。