2009-06-10 33 views
0

www.whatpub.org是我自己在VB.NET中編寫的ASP.NET v2 Web應用程序。它目前在www.webhost4life.com上託管 - 價格便宜,功能很多,但速度並不快,但這是一個問題。用於pubs的數據庫保存在SQL 2005數據庫中。系統有兩個基本部分。前端「搜索酒吧和展示指南」以及後臺「管理和管理應用程序」,稱爲HOPS。很多運行ASP.NET Web應用程序的工廠。將Web服務器的數據公開給其他應用程序

但是,有一個新的要求。其中一家CAMRA分支機構想要使用HOPS,雖然他們不介意通過www.whatpub.org訪問這些條目,但他們還想在自己的網站上標記/設計一個酒吧的靜態列表。

目前,他們的指南是一系列靜態網頁,必須由網站管理員手動編輯。不理想...

顯而易見的解決方案是他們做了類似於www.whatpub.org的工作 - 或者在請求時即時生成頁面或者編寫例程以生成觸發的靜態HTML頁面通過改變酒吧記錄。這將需要PHP或ASP.NET編程 - 這是給出的。

但是(最後還是要說明我的文章的原因),將HOPS數據庫中的數據暴露給其他Web服務器上運行的應用程序的最佳方式是什麼?

WebHost4Life確實將互聯網上的SQL數據庫暴露出來,但這並不完全正確,可能有點危險。此外,可能不會使用webhost4life,另一個提供商可能不會在互聯網上公開SQL服務器。

我讀過很多關於web服務的內容。我喜歡這個概念,因爲這意味着我可以編寫一箇中間層,即使我決定更改底層數據庫結構(在限制範圍內),也可以保持暴露的接口一致。

我也使用HTTP POST請求返回XML文檔,這是另一種選擇。

SOAP在哪裏適合所有這些?

所有建議感激地收到!

乾杯,羅布。

回答

1

我認爲你最好的選擇是使用ASP.NET web服務公開你的HOPS數據。儘管他們認爲合適,但您的CAMRA合作伙伴可以訪問Web服務。例如,他們可以使用JQuery來調用您的Web服務,並使用JSON格式的數據(一種替代數據格式,在JavaScript中代替XML)。作爲警告,本文在解決使用JQuery和其他JavaScript框架調用ASP.NET Web服務時遇到的常見問題時非常有用。

http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

下面是用於調用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); 
} 

});

+0

請原諒我對Web服務的不瞭解(需要仔細閱讀我的想法),但我認爲他們可以通過HTTP等標準Web協議工作?那麼沒有防火牆和端口問題?我想我問的是在託管網站上運行Web服務的機率是多少? – 2009-06-10 22:57:06

相關問題