Web services 将数据从web服务器公开给其他应用程序

Web services 将数据从web服务器公开给其他应用程序,web-services,Web Services,www.whatpub.org是我自己用VB.NET编写的ASP.NET v2 web应用程序。它目前托管在www.webhost4life.com上,价格便宜,功能丰富,但速度并不快,但这只是一个旁白。酒吧的数据库保存在SQL 2005数据库中。该系统有两个基本部分。前端“搜索酒吧和展示指南”和后端“管理和管理应用程序”称为HOPS。非常普通的ASP.NET web应用程序 然而,有一个新的要求。CAMRA的一家分支机构希望使用啤酒花,虽然他们不介意通过www.whatpub.org访问这些条

www.whatpub.org是我自己用VB.NET编写的ASP.NET v2 web应用程序。它目前托管在www.webhost4life.com上,价格便宜,功能丰富,但速度并不快,但这只是一个旁白。酒吧的数据库保存在SQL 2005数据库中。该系统有两个基本部分。前端“搜索酒吧和展示指南”和后端“管理和管理应用程序”称为HOPS。非常普通的ASP.NET web应用程序

然而,有一个新的要求。CAMRA的一家分支机构希望使用啤酒花,虽然他们不介意通过www.whatpub.org访问这些条目,但他们也希望在自己的网站上建立一个静态酒吧列表的品牌/风格

目前,他们的指南是一系列静态网页,必须由网站管理员手动编辑。不理想

对于他们来说,显而易见的解决方案是做一些类似于www.whatpub.org已经做过的事情——要么在请求时动态生成页面,要么编写一个例程来生成由pub记录更改触发的静态HTML页面。这将需要PHP或ASP.NET编程,这是给定的

但是(为了最终解释我的文章的原因),向运行在不同web服务器上的另一个应用程序公开HOPS数据库中的数据的最佳方法是什么

WebHost4Life确实在internet上公开了SQL数据库,但这感觉不太正确,可能有点危险。此外,可能不会继续使用webhost4life,并且其他提供商可能不会在internet上公开SQL server

我读了很多关于web服务的书。我喜欢这个想法,因为这意味着我可以编写一个中间层,即使我决定更改底层数据库结构(在限制范围内),也可以保持公开接口的一致性

我还使用了HTTP POST请求,它返回XML文档,这是另一个选项

肥皂放在哪里

收到所有建议,不胜感激


干杯,Rob。

我认为您最好的选择是使用ASP.NET web服务公开您的跃点数据。您的CAMRA合作伙伴可以访问web服务,无论他们认为最合适。例如,他们可以使用JQuery调用您的web服务,并使用JSON格式的数据(一种在JavaScript而不是XML中工作良好的替代数据格式)。作为警告,本文对于解决使用JQuery和其他JavaScript框架调用ASP.NETWeb服务时的常见问题非常有用

以下是一些用于调用ASP.NET web服务的JQuery示例代码:

jQuery.ajax({
type: "POST",
contentType: "application/json",
beforeSend: function(x) {
    x.setRequestHeader("Content-Type","application/json");
},
url: "/services/MyService.asmx/GetRandomPubName",
error: function (XMLHttpRequest, textStatus, errorThrown) {
    // handle your error here
},
dataType: "json",
data: {},
success: function(msg) {
    // handle the successful web service call
    $('.responseDiv').html('Random Pub Name found in the database: '+msg.PubName);
}

}))

请原谅我缺乏关于web服务的知识(我想需要仔细阅读),但我假设它们通过HTTP这样的标准web协议工作?所以没有防火墙和端口问题?我想我要问的是,web服务在托管站点上工作的可能性有多大?是的,web服务使用HTTP。在Visual Studio中创建新的web服务项目时,默认情况下,ASP.NET web服务(页面)将命名为Service1.asmx。我一直很难找到真正好的web服务介绍和模式,但可以将web服务看作web服务器服务(IIS、Apache等)中的一个页面/服务。与普通的.aspx页面一样,将“web服务”可视化为IIS中托管的.asmx页面更容易。另一个应用程序调用web服务以检索XML格式或JSON格式的数据。SOAP和WSDL只是一种协议和模型,用于向客户机应用程序描述web服务,例如web服务上公开了哪些功能。