本來想盡快使用 VS2017+.Net連結上放在Google 雲端的SQL資料庫,可是上一篇只試驗簡單的 Hello World 而已,這次來跟隨第二篇英文教學吧: "Bookshelf Tutorial App"
但!最最令人討厭的,就是想要跟著一步一步做,卻又節外生枝,所遇到的和教學寫得不一樣.....
依建立好專案,打開 APP Engine,咦!說好的Dashboard 咧??
我看到的畫面是這個:
第二個的"下載 Google App Engine SDK ",也在說明文件之中,如圖:
左邊的藍色區域,要先選擇開發語言....
什麼!!! 我不是在VS2007嗎?該選啥? 好吧,據說VS2017有涵蓋Python, 選吧~
選完後出現區域選擇:
然後,跑出 App Engine的 Python教學,真是的竟然是另一個教學!好吧,耐著性子跟著走.....(初入門的悲哀,走吧.....)
原來這個是互動型的教學,左邊是AppEngine主控台,右邊是說明,下方會出現Cloud Shell直接算是連到此專案:
部署之後,它也是個網頁 Hello World, 不同的是它是以"專案名稱+appstore.com"為網址:
http://test-bookshelf-167805.appspot.com/
(PS: 我試完就刪除了)
可是....原來的 Bookshelf 範例呢???
仔細看看教學的第一步驟(before you begin), 開啟新專案之後,本來要做的:
我的作法:
- GO TO APP ENGINE >>>> 這步我選Node.js, 選地區之後,我跳出互動式教學
- ENABLE THE APIS >>>> 這步可以做,OK
- DOWNLOAD THE SDK >>>> 這步竟然是下載 Linux版的SDK ???? 先跳過吧。
- 然後接下來在 Google Cloud Shell 的兩個步驟 >>>> OK
然後是建立 Windows User >>> 能夠照著做,沒問題。
終於,可以進入教學的下一個網頁:
https://cloud.google.com/dotnet/docs/getting-started/using-structured-data
這裡有三個選擇:
- Google Cloud SQL, Managed MySQL
- Google Cloud Datastore, Managed NoSQL database
- Microsoft SQL Server, Self-managed SQL Server
決定先玩玩看 MySQL! 就是進入這個教學網頁:
https://cloud.google.com/dotnet/docs/getting-started/using-cloud-sql
在這部分, 首先建立 MySQL資料庫的執行個體, 跟著教學建立沒有問題。
再來,是 Visual Studio的部分,設定與 Local執行範例 2-structure-data:
執行時有錯誤,Google一下,
是要修正 Web.config內容:
要在 <add name="MySQLMembershipProvider" 的段落,最後加上一行:
- autogenerateschema="true"
此時,網頁是在 Local執行,但是資料庫在雲端,所以每一次執行的輸入都會留下來!
然後, 要佈署到雲端的CE時,VS2017又與教學頁說的不一樣。
教學是說: In the Publish Web dialog, select Custom as your publish target.
但是我看到的是:
我認為應該是選"IIS,FTP等",選擇之後的跳出視窗:
填妥ˋ可以先驗證連接。下一頁的設定如下圖:
然後按"儲存",再按"發行"。....
.
結果建置成功,程式應該是已經成功發行到雲端機器上了,可是瀏覽 IP address的時候,卻有錯誤:
看起來是雲端 server 有錯誤可是看不到...好吧,依據其建議,編輯檔案"Web.config", 在<system.web>區段裡面,加上一行:
- <customErrors mode="Off"/>
再次執行 ,這次看到錯誤了:
怎麼辦呢?
???
我這個問題卡住蠻久的,最後找到微軟討論區的解答:
Web.config先加上一段:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages.Razor" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> </assemblyBinding>
然後,在 NuGet, 套裝管理器主控台,執行下面:
Install-Package WebMatrix.Data Install-Package Microsoft.AspNet.WebHelpers Update-Package
搞定!!
完成後,看到畫面了:
+++++++++++++++++++++++++++++++
PS:在驗證連接的時候,還發生小插曲,原來我這次建立CE的VM執行個體時,從 Google Cloud的控制台(網頁)裡的按鈕"建立或重設windows密碼", 並無成功.
我是從 VS2017 裡面,由 Google Cloud Explorer,選執行個體,按右鍵選擇 Manage Windows Cercential:
在這邊做的帳號,才會成功看見密碼啊.....
沒有留言:
張貼留言