或者它必须与应用程序调用它在同一台服务器上?我是web api的新手,所以我正在浏览一些教程,但他们都假设web api是mvc应用程序的一部分。另外,他们显示了使用javascript完成api的调用,但我想在我的MVC应用程序控制器中进行调用。这可能吗?web api可以坐在远程服务器上吗?
0
A
回答
1
Web Api可以在任何你想要的地方生活。通常看到一个有限的API主要用于MVC应用程序的MVC应用程序的AJAX,主要是因为它使得构建URL到端点更简单。如果您在外部托管Web Api,则必须对API端点URL进行硬编码,因为无法再使用类似Url.Action
之类的东西来自动生成它们。无论如何,这是处理事情的完美接受方式。
不过,您可能至少想要将Web Api的基本URL作为应用程序设置添加到您的Web.config中。那样的话,你最终不会得到硬编码引用到一个特定的域,它散布着你的应用程序。这使得将Web Api移到不同的域更容易,特别是在谈论从开发到生产时。
在您的实际控制器操作中使用Web Api也完全可行。你只需要使用类似HttpClient
的东西来连接它并发出请求。
2
您可以在任何地方托管Web API。
当Web API与使用它的Web站点不在同一台服务器上时唯一特别的考虑因素是默认情况下Web API不接受来自不同域的请求。例如,如果网站位于“server1.com”,而“server2.com”位置的Web API,则Web服务器对Web API的调用将被拒绝。
如果是这种情况,您需要配置Web API服务器以启用CORS(跨源资源共享),以便它接受来自不同域的请求。如果您想了解更多的相关信息,请看看这个文件:
相关问题
- 1. 可以从服务器上复制远程文件吗?
- 2. 我可以通过web服务在远程计算机上唤醒Lan吗?
- 3. Docker容器可以在实时Web服务器上运行吗?
- 4. 远程服务器上的天气API
- 5. 使用jQuery在远程服务器上调用Web服务
- 6. Web服务调用在远程服务器上失败
- 7. Java JSON解析器可以访问远程服务吗?
- 8. WCF服务可以像WEB API服务那样模块化吗?
- 9. 可以在Web服务器上拥有大量目录吗?
- 10. 我可以让Web服务器成为索引服务器吗?
- 11. 远程服务器可以使用Php运行本地服务器吗?
- 12. 远程Web服务
- 13. 远程Web服务
- 14. 通过session_id,我可以绕过远程服务器上的登录表单吗?
- 15. ANT可以开始在远程服务器上重新启动作业吗?
- 16. 运行在网页上的Javascript可以连接到远程服务器吗?
- 17. 你可以在远程服务器上解压缩一个.zip文件吗?
- 18. 可以在远程服务器上使用不同的区域设置吗?
- 19. HMR是否可以在远程服务器上使用资源?
- 20. 调试远程服务器上的Web服务
- 21. AJAX可以从远程服务器请求数据吗?
- 22. Greenplum,可以将CSV导出到远程服务器吗?
- 23. Selenium服务器可以从远程网络路径运行吗?
- 24. 可以通过Robot框架连接到远程服务器吗?
- 25. 在远程服务器上安装Tomcat并在其上部署Web服务
- 26. 可以单独开发Web服务器和应用程序服务器吗?
- 27. 在远程服务器上使用Apigility
- 28. 在远程服务器上访问MONGODB
- 29. Web服务可以在同一个应用程序服务器中调用另一个Web服务吗?
- 30. 如何通过SSH在远程服务器上运行Web服务器脚本?
的WebAPI是一样的web服务(不完全),你可以从任何C#层调用它。你可以使用HttpClient类来调用你的web api托管在其他服务器上。 看到这个链接。 http://stackoverflow.com/questions/19448690/how-to-consume-a-webapi-from-asp-net-web-api-to-store-result-in-database – Prashant