2017年5月17日 星期三

使用.Net連接Google Cloud. (2)

本來想盡快使用 VS2017+.Net連結上放在Google 雲端的SQL資料庫,可是上一篇只試驗簡單的 Hello World 而已,這次來跟隨第二篇英文教學吧: "Bookshelf Tutorial App"
但!最最令人討厭的,就是想要跟著一步一步做,卻又節外生枝,所遇到的和教學寫得不一樣.....
依建立好專案,打開 APP Engine,咦!說好的Dashboard 咧??
我看到的畫面是這個:
 
第一行的瞭解詳情,會到 App Engine 的總攬網頁 (中文的呦!)
 
 
右邊白色底的區域,第一個是瀏覽說明文件,會到 AppEngine的說明文件首頁

第二個的"下載 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), 開啟新專案之後,本來要做的:

我的作法:
  1. GO TO APP ENGINE  >>>> 這步我選Node.js, 選地區之後,我跳出互動式教學
  2. ENABLE THE APIS >>>> 這步可以做,OK
  3. DOWNLOAD THE SDK >>>> 這步竟然是下載 Linux版的SDK ???? 先跳過吧。
  4. 然後接下來在 Google Cloud Shell 的兩個步驟 >>>> OK
再來是:建立 CE 執行體(instance) 這裡也是建一個 ASP.Net Framework在雲端:

然後是建立 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執行情況:

此時,網頁是在 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:

 在這邊做的帳號,才會成功看見密碼啊.....

沒有留言:

張貼留言

ASP.Net Core MVC (VS2017) 入門點 - (2-1)

再回來看看 Visual Studio幫你產生的使用者驗證管理, 就是我們 新增專案 時, 有個『 變更驗證 』選項,其下有四種選項,它會自動產生很多Code, 這裡研究清楚以便日後使用.