成人免费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-20 15:30:11

ASP.NET應用

2009-07-22 16:11:43

ASP.NET AJA

2009-07-24 10:52:42

ASP.NET ISA

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技術棧公眾號

主站蜘蛛池模板: 欧美日韩综合 | 亚洲成人av | 国产精品s色 | 国产精品国产成人国产三级 | 日本成年免费网站 | av网站在线免费观看 | 亚洲成人免费 | 亚洲精品丝袜日韩 | h小视频 | 欧美一区二区三区在线观看 | 色噜噜狠狠色综合中国 | 国产精品日日做人人爱 | 日本天堂视频在线观看 | 国产在线观看一区二区 | 日韩在线不卡视频 | 一起操网站 | 少妇午夜一级艳片欧美精品 | 亚洲精品亚洲人成人网 | 操久久 | 欧美三区在线观看 | 一区二区三区免费看 | 国产视频1区 | 一区二区三区视频在线观看 | 亚洲第一区久久 | 新超碰97 | 91精品国产一区二区三区 | 国产日韩久久 | 黄色毛片在线观看 | 免费观看一级特黄欧美大片 | 亚洲一区久久 | 一区二区精品 | 欧美日韩亚洲视频 | 精品福利在线视频 | 久久国产激情视频 | 欧美激情区 | 国产婷婷精品av在线 | 国产人成精品一区二区三 | av一区二区三区四区 | 亚洲一区中文字幕 | 国产视频一区二区三区四区五区 | 伦理二区|