从另一台电脑访问.net web api
Reach .net web api from another pc
我正在做一个项目,我需要为客户端提供一个REST API,它将以JSON格式从数据库返回一些数据。"到目前为止,这是我的控制器代码:
[Models.AllowCors]
public HttpResponseMessage Get(string Id)
{
string ClearName = Id.Replace("_", " ");
IQueryable<Models.User> userQuery =
from user in Models.TableAccesser.Users_Table where
user.Name == ClearName
select user;
return Request.CreateResponse(HttpStatusCode.OK, userQuery);
}
我遇到的问题是,我只能从运行web api的同一台电脑访问api。我可以通过这样的链接联系:
my_ip:54780/users/parameters
如果我从同一台电脑打电话,它工作得很好,但我无法从另一台电脑连接到它。我尝试了几种方式允许cors,但都不起作用。我尝试过:
在webapiconfig.cs:中启用cors
var cors = new EnableCorsAttribute("*", "*", "*"); config.EnableCors(cors);
不起作用
然后我尝试在web.config中添加一个新条目:
<add name="Access-Control-Allow-Origin" value="*"/>
这对都不起作用
然后我尝试的最后一件事是添加一个函数:
public class AllowCors : ActionFilterAttribute { public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { if (actionExecutedContext == null) { throw new ArgumentException("ActionExecutedContext"); } else { actionExecutedContext.Response.Headers.Remove("Access-Control-Allow-Origin"); actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", "*"); } base.OnActionExecuted(actionExecutedContext); } }
我尝试使用另一台电脑上的poster和xmlhttprequest、ajax,但都不起作用。大约有20秒的延迟,然后什么都没有,如果我试图写出response.responseText,那只是一个"错误",仅此而已。
你能给我一些想法吗?我可以尝试访问API吗?这个API将从移动应用程序中使用,所以它应该处理简单的请求。
感谢您的回复。
从您的问题来看,您似乎需要打开Web API机器上的端口。在您的情况下,您需要打开端口54780
打开你的端口很容易,在这里的Microsoft页面上有关于如何打开端口的说明:在Windows防火墙中打开端口
-
打开Windows防火墙,方法是单击"开始"按钮图片中的"开始",然后单击"控制面板"。在搜索框中,键入firewall,然后单击Windows防火墙。
-
在左侧窗格中,单击"高级设置"。需要管理员权限如果系统提示您输入管理员密码或确认信息,请键入密码或提供确认信息。
-
在"具有高级安全性的Windows防火墙"对话框的左侧窗格中,单击"入站规则",然后在右侧窗格中单击"新建规则"。
-
按照"新建入站规则"向导中的说明,将端口54780添加到您的规则中。
请注意,如果您使用第三方防火墙,例如使用AntiVirus软件,则需要打开该应用程序中的端口。
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- 是否可以在系统/电脑浏览器中访问手机摄像头
- 从另一台电脑访问.net web api
- a: 访问的dons'当链接打开iTunes应用程序时,无法在平板电脑上工作
- 如何阻止个人电脑访问网页
- 我如何定义如果我的电脑有访问互联网与javascript
- 不能从iframe访问浏览器平板电脑(Firefox除外)中的父javascript