繁体   English   中英

同一项目中的Web服务和网站

[英]Webservice and website in the same project

我正在阅读在VS 2010 vb.net上创建的网站项目,他们在同一项目中实现了webservice.asmx,该项目将在javascript方法中调用。 换句话说:Web服务未实现为API,它是webservice.asmx,我可以在其中添加方法来调用数据库,而这些方法用于javascript函数中。我的问题是:

  1. 从javascript调用Web服务而不是回发到服务器并在那里检索数据形式的重要性是什么?
  2. 那会议呢? Web服务是否可以查看用户的会话? 我问这个问题是因为我可以查看一些填充为HttpContext.Current.Session("UserID") = userId会话。
  3. 如果可以捕获和填充用户页面的会话,是否可以访问同一用户的ASP页面中的控件? 为什么呢?

我对此Web服务有些困惑,我知道Web服务在服务器上运行,并在应用程序中用作API ...这是我第一次使用同一个项目中编写的Web服务和网站,谢谢您。

1个

调用WebService比执行PostBack快得多,因此,如果您只想对网站进行部分更新,则WebService是一个很好的选择(如果您要从头开始创建项目,则可以使用Web API,而不是ASMX WebService)。 当然,您必须将结果集成到客户端的Web页面中。 如果您希望具有导致UI更改的异步请求,则还可以在ASPX页上使用UpdatePanel

为了避免CORS问题,通常也将WebService与Web前端托管在同一应用程序中。

2

如果将WebMethod属性上的EnableSession设置为true,则WebService也可以访问用户的会话。 看到这个问题有一些陷阱。

3

由于对Web服务的请求是一个单独的请求,因此它无法直接访问服务器上页面的控件(以C#/ VB.NET代码读取),但是您可以使用JavaScript更改客户端上的HTML文档树。

如果需要在服务器上的页面和WebService之间共享代码,则应该在帮助程序/业务逻辑类中创建由页面和WebService调用的单独方法。

举个例子,如果页面和WebService都需要从数据库中获取数据,则可以将用于数据库访问的代码从ASPX页面移到一个单独的类中(出于许多其他原因,这是一个好主意),并且在ASPX页面和WebService中都使用该类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM