localhost 在 Webapi 操作中拒绝连接
Posted
技术标签:
【中文标题】localhost 在 Webapi 操作中拒绝连接【英文标题】:localhost refused to connect in Webapi operation 【发布时间】:2017-08-18 00:15:21 【问题描述】:我创建了 WebApi 项目并包含示例 Get 方法。 当我尝试从 Firefox/Chrome 浏览器使用 url (http://localhost:port/api/video) 访问 get 方法时,我收到以下消息:-
无法访问此网站 localhost 拒绝连接。 ERR_CONNECTION_REFUSED
当我创建 ASP.NET Web 应用程序并尝试在浏览器中使用 localhost 查看 aspx 页面时,它正在显示该页面。
当我尝试使用 Visual Studio 运行 WebAPI 时,它会在 Google Chrome 中打开 url(http://localhost:port),并显示 HTTP 错误 403.14 - 禁止错误。
我在 Visual Studio 2015 社区中使用 IIS Express。操作系统是 Windows 10。
我曾尝试关闭防火墙并从 hosts.config 文件中删除 #,但没有成功。
在过去 2-3 天一直在寻找同样的问题后,我现在迷失了方向,有什么可以做的吗?
请在下面找到我的代码:-
Global.asax.cs
public class WebApiApplication : System.Web.HttpApplication
protected void Application_Start()
GlobalConfiguration.Configure(WebApiConfig.Register);
VideoController.cs
public class VideoController : ApiController
public IEnumerable<string> Get()
return new string[] "Value1", "Value2";
WebApiConfig.cs
public static class WebApiConfig
public static void Register(HttpConfiguration config)
// Web API configuration and services
// config.EnableCors();
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/controller/id",
defaults: new id = RouteParameter.Optional
);
【问题讨论】:
你能用示例 Get 方法展示你的 Web API 控制器吗? 对于初学者,您应该使用 Fiddler 或 PostMan 等测试 API 端点,而不是浏览器,但是不期望任何参数的 GET 会将 JSON 转储到 Chrome 的屏幕上。您需要分享一些代码,以便我们能够为您提供帮助。 我已按要求添加了代码。我使用了 fiddler,它在 Get 方法上给出了以下异常:-“无法建立连接,因为目标机器主动拒绝它” 【参考方案1】:我终于可以在 localhost 中运行 WebAPI。
我已经检查了控制面板->打开或关闭 Windows 功能->Internet 信息服务->万维网服务->应用程序开发功能|通用 HTTP 功能|安全中的所有选项。
当我从 Visual Studio 2015 调试 Web API 应用程序时,选中所有这些选项可以让我从 GET 请求中获得响应。但是,一旦我停止在 Visual Studio 中调试应用程序,来自 GET 请求的响应也会停止。我发现当我在 Visual Studio 中停止调试时,IIS express 也停止了。 在阅读了几篇文章后,我知道我必须从 Web API Project->Properties->Web->Enable Edit and Continue 中取消选中“Enable Edit and Continue”选项。
但即使我根本不启动 Visual Studio,我也必须使用 GET 响应,所以我最终将我的网站部署在 IIS 中。
【讨论】:
【参考方案2】:对我来说,重启PC后弹出“localhost拒绝连接”的问题。
解决我的问题的是我在项目属性页面中点击了按钮“创建虚拟目录”。
Web API Project->Properties->Web->"Create Virtual Directory"
【讨论】:
【参考方案3】:您也可以关闭 Visual Studio,删除 .vs 文件夹(可能被隐藏)然后重新编译应用程序。这对我有用。
【讨论】:
以上是关于localhost 在 Webapi 操作中拒绝连接的主要内容,如果未能解决你的问题,请参考以下文章
Ejabberd 无法连接到“localhost”:3306:错误,“连接失败:连接被拒绝”
SQLAlchemy 和 PyMySQL 在连接到 AWS RDS 后拒绝连接到“localhost”
如何修复“连接到 localhost:6379 的错误 111。当我启动 rq-worker 时连接被拒绝?