【问题标题】:c#.net Restful API Works on debug/release but not on IISc#.net Restful API 适用于调试/发布,但不适用于 IIS
【发布时间】:2018-11-16 14:22:54
【问题描述】:

我正在 c#.net 中创建一个宁静的 API 应用程序。当我通过 iisexpress 在调试或发布模式下编译我的应用程序时。它按预期工作。我可以使用 fiddler 并在“GET”中传递相应的参数,如用户凭据,它将连接并获得 200 (http://localhost:49917/v2/Carriers) 的响应。当我发布我的应用程序并将其部署在 IIS (http://api.test1.net/v2/Carriers) 中时。 IIS 安装在我编译应用程序的同一台计算机上。然后,我使用 fiddler 并传递必要的参数,我得到了 503 的响应。我不确定为什么不起作用。我的应用程序池是以下设置: .Net CLR 版本:v4.0 托管管道模式:集成 身份:LocalService(我也尝试过 ApplicationPoolIdentity)

当我发布我的应用程序时,我使用以下发布方法:“文件系统”。

我在主机文件 (windows/system32/drivers/etc/) 中添加了 IP 地址和主机名。我不确定为什么不工作。

是什么让 Visual Studio 在调试/发布模式下与发布版本按预期工作不同?

【问题讨论】:

  • 不幸的是,503 错误可能是许多问题的结果,您应该启用 IIS 日志记录以查看根本原因是什么:docs.microsoft.com/en-us/iis/manage/…
  • developer.mozilla.org/en-US/docs/Web/HTTP/Status/503 - 错误表示服务器收到请求但无法处理。该站点是否在 IIS 中启动?还有其他错误吗?如果那里有信息,请检查事件查看器和 IIS 日志。它似乎与 Visual Studio 本身无关,更多地与 IIS 有关。也许 IIS 站点未映射到该主机或 IP 或其他东西。不幸的是,这可能是许多问题,因此需要更多信息。
  • 是什么让 Visual Studio 在调试/发布模式下与发布版本按预期工作不同?”:主机; IIS 配置不正确。从头开始:确保安装了正确的 .net 框架并启用了所有必要的 IIS 功能。
  • webservice是asp.net核心吗?如果是,请检查 .net core 的 IIS Hosting Bundle 是否已安装。
  • 1) 我将尝试启用 IIS 日志 (Matthew), 2) (Stefan) 我已启用所有与“互联网信息服务”相关的 windows 功能。您推荐一个特定的 windows 功能吗? 3) (Haldo) 这个应用程序是一个带有 .NET 框架 4.5 的 asp.net web api (VS2013)。这不是 asp.net 核心。

标签: c# web-services asp.net-web-api iis-8


【解决方案1】:

我想让你们知道,我按照你们的建议做了,我想出了答案。我需要在 SQL Server 数据库中添加一个新用户。

《IIS APPPOOL\ASP.NET v4.0下访问数据库 由于我们使用的是 ASP.NET v4.0 应用程序池,请确保将 IIS APPPOOL\ASP.NET v4.0 添加到您的数据库服务器 -> 安全 -> 登录。”

在我添加了这个新用户“IIS APPPOOL\api.test1.net”之后,带有提琴手的 api 获取请求按预期工作,并得到 200 个响应。 “api.test1.net”是我在 IIS 中的应用程序池的名称。

感谢您的所有推荐。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多