成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談在Azure云中部署支持MVC的ASP.NET程序

開發 后端
作者的寫作風格可能與一般程序員的風格不太一樣,有些云里霧里。不過云計算現在給人的感覺也不正是云里霧里嗎?先看看作者是怎么實現的。

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

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

如何開始

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

默認的初始項目

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

無效選項。。

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

添加當前解決方案中的 WebRole 項目可用了

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

AspProviders & StorageClient

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

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

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

RTFM

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

高亮背景改成黃色后

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

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

2.不使用readme 里面的標準 appSettings 設置 tableServiceBaseUri 等 addtional options,因為發布到云上就不能修改了,然而在本地調試的時候,用的是 local development storage。

3.修改 .csdef 和 .cscfg 文件,本地調試時按照 相關文章2 填寫,發布上傳之前,.cscfg 改成: 

<ConfigurationSettings>
  <Setting name="DefaultProviderApplicationName" value="YourApplicationName"/>
  
  <Setting name="AccountName" value="YourStorageAccountName"/>
  <Setting name="AccountSharedKey" value="YourStorageAccountPrimaryKey"/>
  <Setting name="BlobStorageEndpoint"
value="https://YourStorageAccountName.blob.core.windows.net"
/> <Setting name="QueueStorageEndpoint"
value="https://YourStorageAccountName.queue.core.windows.net"
/> <Setting name="TableStorageEndpoint"
value="https://YourStorageAccountName.table.core.windows.net"
/> <Setting name="allowInsecureRemoteEndpoints" value="false"/> ConfigurationSettings>

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

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

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

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

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

最后

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

【編輯推薦】

  1. 云計算推波助瀾 非關系數據庫蓄勢待發
  2. 如何在Windows Azure云上托管SilverLight應用
  3. 詳解Azure云計算 訪微軟互連系統部門全球副總裁
責任編輯:彭凡 來源: 博客園
相關推薦

2009-07-22 13:24:24

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2009-07-24 10:41:00

asp.net mvc

2009-07-28 18:00:11

ASP.NET程序

2009-07-20 12:42:04

MvcContrib.ASP.NET MVC

2009-12-07 09:23:05

ASP.NET MVC

2009-07-23 10:08:24

asp.net mvc

2009-07-21 15:02:19

ASP.NET應用程序

2009-12-21 10:05:10

ASP.NET MVC

2009-01-16 13:17:16

AjaxASP.NET.NET

2009-07-24 10:52:42

ASP.NET ISA

2009-07-20 15:30:11

ASP.NET應用

2009-07-22 16:11:43

ASP.NET AJA

2009-06-15 10:57:51

FluentHtmlASP.NET MVC

2011-01-28 09:45:29

ASP.NET MVC

2009-07-31 12:43:59

ASP.NET MVC

2009-07-24 13:20:44

MVC框架ASP.NET

2009-08-05 10:16:54

部署ASP.NET應用

2017-06-01 12:30:59

SQL云計算云端

2009-07-27 13:01:28

TreeViewASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品www | 免费视频成人国产精品网站 | 91视频在线观看免费 | 久久精品免费一区二区 | 免费日韩网站 | 久久久久一区 | 亚洲一区 | 欧美国产精品一区二区 | 国产黄色在线 | 天天操综合网 | 久久99国产精一区二区三区 | 亚洲精品久久久一区二区三区 | 国产精品自产av一区二区三区 | 羞羞视频免费观看入口 | 国产日韩欧美二区 | 精品一区二区三区在线观看 | 日韩在线精品强乱中文字幕 | 久久综合久色欧美综合狠狠 | 国产精品亚洲精品日韩已方 | 午夜电影网 | 欧美精品久久久 | 亚洲一视频| 蜜臀网站 | 国产精品片 | 91免费版在线观看 | 亚洲精品国产成人 | 国产精品中文 | 婷婷丁香在线视频 | 成人久久18免费网站图片 | 精品亚洲一区二区三区 | 97国产超碰 | 欧美成人免费在线视频 | 欧美日韩高清免费 | 日韩一区二区免费视频 | 亚洲天堂av网 | 亚洲国产精品久久久久久 | 亚洲精品一区二区二区 | 国产精品毛片av | 天天干天天爱天天 | 欧美区日韩区 | 欧美成人在线免费 |