日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺談在Azure云中部署支持MVC的ASP.NET程序

之前我就像某人說的那樣,I’m not quite a cloud guy,但是后來看了各式各樣的演示,認(rèn)識了 Cloud Project 的構(gòu)成,以及 Mix 09 里面某人說 "It’s fun!” 以后,就沖著這句 It’s fun,我就扔了個 Hello World 上去,感覺還不錯的,但是缺乏做點(diǎn)什么的動力,后來就丟在一邊了。差不多的時間知道了 Google App Engine, 但不知GAE 猴年馬月才能用 .Net 技術(shù)的,我不會python/java,而且現(xiàn)在貌似 GAE 沒有跟 WorkerRole 相應(yīng)的東西,但是好歹也用上了GAppProxy,也叫在 Google 的云上爽了一把。

創(chuàng)新互聯(lián)建站是少有的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、營銷型企業(yè)網(wǎng)站、重慶小程序開發(fā)、手機(jī)APP,開發(fā)、制作、設(shè)計、外鏈、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,于2013年成立,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評

這個情況下,在心愛的微軟的云上卻只有一個 Hello World 實(shí)在太說不過去了,于是打算找一段時間,將自己認(rèn)識的有能力演示出來的東西都搞到云上去,反正現(xiàn)在 Azure 是免費(fèi)的(希望以后的收費(fèi)政策是 GAE 現(xiàn)在那種模式吧),不用白不用,浪費(fèi)了自己漂亮的域名多可惜啊。好,就從剛 Release 不久的 Asp.Net MVC 開始。

如何開始

現(xiàn)在的 Visual Studio Tools for Azure(0903CTP) 是沒有安裝所謂的 MVC WebRole 模板的,也就是在 Roles –> Add –> New Web Role Project 不能搞出一個以 MVC 結(jié)構(gòu)開始的模板,只有 Default.aspx、web.config:

顯然不夠,然后發(fā)現(xiàn) Roles –> Add –> Web Role Project in solution.. 選項不能用,于是刪掉默認(rèn)的 Web Role Project,新建一個 MVC Web Application 到解決方案,發(fā)現(xiàn)該選項仍然是無效的:

這時候,我的做法是用 diff 工具比較 MVC 項目文件 (C# 項目就是 .csproj 了) 和 Web Role 的項目文件,發(fā)現(xiàn) MVC 項目文件沒有 Web 以及一些指向 Azure SDK 中一些程序集的引用,用 diff 工具很快就能補(bǔ)上這些東西了。重新加載修改過的 MVC 項目文件,Roles –> Add –> Web Role Project in solution.. 就能選上了。

如果像我在開始的時候順便創(chuàng)建了測試項目的話,在上面這個過程可能會造成測試項目丟失對MVC項目的引用,編譯時會提示,加上即可?,F(xiàn)在,按 F5 調(diào)試,等一輪初始化過程,MVC 項目默認(rèn)首頁出來了。這就完成了嗎?

AspProviders & StorageClient

是差不多了,但是在 Azure 上運(yùn)行的應(yīng)用程序可以有多個 Instances 的,每個 Instance 運(yùn)行在不同的 Appdomain 里(瞎猜的,甚至可能在不同的虛擬機(jī)中,分布在不同的地理位置……),反正是隔離的,那么像登陸這類需要 Session 的操作會產(chǎn)生一些問題,具體什么問題很難說,我沒試過,大概就是注冊不了啊,登陸記不住之類的。這時候發(fā)揮 Google 的長處,會有驚喜的,我找到了 4 篇(1,2,3,4)相關(guān)的文章,原文都是英文,比較詳細(xì),另外還有幾篇出自園友。除了關(guān)鍵的步驟,我就不重復(fù)他們的東西了。

說起來慚愧,我不是讀計算機(jī)專業(yè)的,之前學(xué)過一點(diǎn) Asp,沒怎么學(xué)習(xí)過 Asp.Net,因此很多東西都是不久前才知道的,例如 Asp.Net 2.0 的 Provider Model。在這里 Provider Model 抽象出儲存的實(shí)現(xiàn),使得 Asp.Net 的各種狀態(tài)可以自由選擇儲存在不同的媒介中,而且可以通過配置文件更改,不得不說這個設(shè)計實(shí)在非常好。上面給出的第四篇相關(guān)文章就敘述了怎么打造一個可以在 Cloud 運(yùn)行的 Membership Provider。

在 Azure SDK 的安裝目錄中,有一個 Samples.zip,里面包含有微軟提供的 AspProviders 例子,該例子提供了利用 Azure Storage 作為狀態(tài)信息的儲存媒介的樣例,順便也做了使用里面 StorageClient 樣例的例子,哈哈,在這里能發(fā)掘不少東西的。因?yàn)?StorageClient 很多公共方法沒有文檔,給 Supress 了。

RTFM

AspProviders 文件夾里有一樣很重要的東西,就是 providers-extended-readme.mht,我覺得這個文件一定要重視,如果你不打算寫自己的 Providers 的話。里面有些代碼用紅色高亮了,可惜背景是灰色的,看完肯定報廢一只眼睛,建議拿 Word 把那里的背景顏色改成黃色,看起來就舒服多了。

以下是我 RTFM 總結(jié)后的做法,希望對大家有用:

1.修改 Web.config,使那些 Providers 生效。大部分代碼可以從 AspProvidersDemo 中復(fù)制。其中要修改的是 appName 屬性,修改成應(yīng)用的名稱。Profile 的那個 inherits 屬性刪去,否則會出現(xiàn)運(yùn)行時錯誤。

2.不使用readme 里面的標(biāo)準(zhǔn) appSettings 設(shè)置 tableServiceBaseUri 等 addtional options,因?yàn)榘l(fā)布到云上就不能修改了,然而在本地調(diào)試的時候,用的是 local development storage。

3.修改 .csdef 和 .cscfg 文件,本地調(diào)試時按照 相關(guān)文章2 填寫,發(fā)布上傳之前,.cscfg 改成:

     value="https://YourStorageAccountName.blob.core.windows.net"/>  value="https://YourStorageAccountName.queue.core.windows.net"/>  value="https://YourStorageAccountName.table.core.windows.net"/>  ConfigurationSettings>

1.這里我加上了 DefaultProviderApplicationName 這條,否則用默認(rèn)的:appName,有點(diǎn)惡心,這樣做記得在 .csdef 文件上加上相應(yīng)的定義。(多口一句:怎么像 C++ 的 h 文件那樣啊,居然要自己聲明元數(shù)據(jù)……)一些已知的問題

在我給出的相關(guān)文章里有了,簡單歸納就是:

1.注意 Request.Url 的額外信息

2.安裝這個 HotFix(同時修復(fù)了一個 WPF 設(shè)計器的問題)

3.不明白為什么要 Create Test Storage Tables 的話,請看這里

最后

可能因?yàn)锳zure 還是 Preview 階段吧,這些 Providers 的配置都要靠自己RTFM 然后人工完成,希望微軟以后能提供 Azure MVC WebRole Project 模板,集成一套 Azure AspProviders,以及 StorageClient。然后呢,繼續(xù)讓某些人罵微軟太體貼,哈哈!說實(shí)話,微軟雖然讓人感覺無時無刻都在 JIT,但這不是很好嗎,這樣才有激情,讓微軟有動力嘛……又跑題了……


分享名稱:淺談在Azure云中部署支持MVC的ASP.NET程序
網(wǎng)頁路徑:http://www.5511xx.com/article/dppshpd.html