J86*_*J86 9 asp.net-mvc asp.net-web-api
所以我对Web API是全新的,我想我会开始一个测试项目来学习它和AngularJS以及它们如何很好地协同工作......等等.
我在我的解决方案中创建了一个多层架构,在我的TPlan.API项目中,我有以下配置的路由Global.asax
GlobalConfiguration.Configuration.Routes.Add("default",
new HttpRoute("api/{controller}"));
Run Code Online (Sandbox Code Playgroud)

TPlan.WEB是我的MVC应用程序,它被设置为"启动项目".当我运行它时,我希望能够:
mysite的:端口/ API /测试
并从我的测试控制器中获取API的值.
但是它对我不起作用,我得到以下结果:
没有找到与请求URI"mysite:port/api/test"匹配的HTTP资源.
呃,在visual studio中,右键单击解决方案并转到属性.转到启动并选择"多个项目"选项并勾选网站和Web服务以启动.
这将启动他们两个.但正如已经指出的那样,它们运行在不同的端口上,它们是完全独立的应用程序......我认为你不能注册属于网站之外的路由.
我们这样工作
View => POST/GET => MVC Controller => HTTP Request => API Controller
所以我们的mvc视图发布或者到我们的mvc控制器,然后我们发起一个单独的http请求到web api.这是服务器到服务器的调用,就像调用任何外部Web服务一样.我们等待来自api的响应,然后返回视图所需的任何内容......
如果不提前将 WebAPI 项目安装到 IIS 中,您所尝试的操作在逻辑上是不可能的,我确信这不是您想要的。这两个项目不能同时运行,因为只有一个项目能够启动 IIS Express 的调试会话。即使两个项目能够同时运行,它们也会位于不同的逻辑端口上,并且来自一个项目的路由必须手动发送到另一实例的侦听端口。基本上,API 项目上的 Global.asax 永远不会运行,因为该项目将构建为类库。
| 归档时间: |
|
| 查看次数: |
8611 次 |
| 最近记录: |