tag:blogger.com,1999:blog-6240053555295032132024-02-19T00:47:28.018-08:00松露筆管麵義大利麵加上松露, 美味無比.-神來之筆Unknownnoreply@blogger.comBlogger345125tag:blogger.com,1999:blog-624005355529503213.post-20367730836359389352018-12-23T04:38:00.001-08:002018-12-23T04:40:48.332-08:00Report Viewer在IE11無法載入報表<p>日前同事求助他的報表使用Report Viewer, 在Chrome可以正常顯示,但在IE11會陷入載入。</p><a name='more'></a><p><br></p><h3>解決步驟:</h3><p>1. 將該網站加入"相容性檢示設定"</p><p>工具 -- 相容性檢示設定 –新增</p><p><a href="https://lh3.googleusercontent.com/-RSUT5FNrAXM/XB-By7bYcII/AAAAAAAAF-k/nTM8ZfI1McEJWHBpsgqyDfakUmFIl7lcgCHMYCw/s1600-h/image%255B3%255D"><img width="645" height="250" title="image" style="display: inline; background-image: none;" alt="image" src="https://lh3.googleusercontent.com/-tZeY4GQWXWo/XB-Bznzl_zI/AAAAAAAAF-o/rRzze8rFh38u6SsD7_law__O9I3TJkz4ACHMYCw/image_thumb%255B1%255D?imgmax=800" border="0"></a></p><h3>後續<br><br></h3><p>如果你的客戶無法接受上述做法,考慮以下解法</p><p>1. 更新SQL Sevice Serice Pack到最新<br>This issue can also be fixed by upgrading to the Reporting Services that comes with SQL Server 2012.<br>2. 安裝正確的Report Viewer Runtime版本, 參考以下的表列</p><p><em>Report viewer History:</em></p><p><a title="https://github.com/codeulike/crisscross/wiki/Report-Viewer-Version-History" href="https://github.com/codeulike/crisscross/wiki/Report-Viewer-Version-History">https://github.com/codeulike/crisscross/wiki/Report-Viewer-Version-History</a></p><p>3. Update .net Fw 到4.5.1 以上</p><h3>Reference:</h3><h3><a href="https://stackoverflow.com/questions/21802257/reporting-services-report-hangs-in-internet-explorer-only">Reporting Services report hangs in Internet Explorer only</a></h3><h3><a href="https://stackoverflow.com/questions/20093371/print-button-not-available-in-reportviewer-using-ie11">Print button not available in ReportViewer using IE11</a></h3>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-35907093190495178592018-09-10T06:20:00.001-07:002018-09-10T06:21:48.792-07:00電腦使用Iphone USB連接網路無法使用<p>日前更新好iTune, 發現每天電腦利用USB連接IPHONE上網失靈了</p><p>查了一下發現是IPHONE驅動程式有問題</p><a name='more'></a><p><br></p><p>首先將Windows Update先做完, 一般可以解決這問題, 若不行按照以下步驟處理</p><p>解決步驟如下:</p><p>1. 電腦 -- 管理 --裝置管理員</p><p>2. 檢查以下驅動程式是否正常,如果不存在進入<strong>步驟4</strong>, 驚嘆號進入<strong>步驟3</strong></p><p><a href="https://lh3.googleusercontent.com/-goXsSuwEHuo/W5Zvn6wIYgI/AAAAAAAAF5o/_cNvSG4fw9Yg30RSvrdCZbYv88J34uRYACHMYCw/s1600-h/image%255B3%255D"><img width="620" height="263" title="image" style="display: inline; background-image: none;" alt="image" src="https://lh3.googleusercontent.com/-VSyP6U3fO9Y/W5ZvoyyS7MI/AAAAAAAAF5s/OVZdRgaHpRwibCvg4Cxvk8PFCS-M0YT6gCHMYCw/image_thumb%255B1%255D?imgmax=800" border="0"></a></p><p><br></p><p>3. 圖示如果是驚嘆號, 右鍵 --更新驅動程式-- 自動搜尋...</p><p><br></p><p><a href="https://lh3.googleusercontent.com/-PEB3GxzJkSk/W5Zvpep097I/AAAAAAAAF5w/JcwtoBJdKRUBDZjca4um03yBGhA_b1GjACHMYCw/s1600-h/image%255B7%255D"><img width="486" height="347" title="image" style="display: inline; background-image: none;" alt="image" src="https://lh3.googleusercontent.com/-sAgVjGpMNYk/W5ZvpyEi7RI/AAAAAAAAF50/4B4WvEhgtmwiv-EEVO0iky98CEKOoG8dgCHMYCw/image_thumb%255B3%255D?imgmax=800" border="0"></a></p><p>4. 如果不存在, 到其他裝置找一下IPHONE, 跟步驟3一樣更新驅動程式<br><a href="https://lh3.googleusercontent.com/-b40JpH97pe8/W5ZvqZ6XgJI/AAAAAAAAF54/EH-ihnWDntcmr3RY5RhDreqfgqBvKqV2wCHMYCw/s1600-h/image%255B11%255D"><img width="466" height="110" title="image" style="display: inline; background-image: none;" alt="image" src="https://lh3.googleusercontent.com/-LKdX-L8WSro/W5ZvrYnb63I/AAAAAAAAF58/Cqfr5BbBT5M5K4hdFNh7zqzBKDpmvqrzQCHMYCw/image_thumb%255B5%255D?imgmax=800" border="0"></a></p><p>5. 更新完驅動, 網路就通了</p><h3>Reference:</h3><p><a title="https://support.apple.com/zh-tw/HT204095" href="https://support.apple.com/zh-tw/HT204095">https://support.apple.com/zh-tw/HT204095</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-73980940230989743132018-07-19T06:13:00.001-07:002018-07-22T19:38:36.989-07:00Windows10 上帝模式Win 10能存有集合個種設定的Folder, 設定如下:<br />
<a name='more'></a><br />
1. 桌面上,新增一個Folder,命名為<br />
god.{ED7BA470-8E54-465E-825C-99712043E01C}<br />
2. 接著就可在桌面上看到以圖示<br />
<a href="https://lh3.googleusercontent.com/-mhKyqyQixbg/W1COXtg4yTI/AAAAAAAAF0c/n9N4UjXPHPcYYeOmm_1F7fsn-vw89BssACHMYCw/s1600-h/image%255B2%255D"><img alt="image" border="0" height="165" src="https://lh3.googleusercontent.com/-NPQMCzvW5tw/W1COYDVz2YI/AAAAAAAAF0g/f87QdFRKj2o_xPmrF-kS-fxWGSvEX3o3wCHMYCw/image_thumb?imgmax=800" style="background-image: none; display: inline; margin: 0px;" title="image" width="230" /></a><br />
3. 點擊圖示就可以看到所有的設定捷徑<br />
<a href="https://lh3.googleusercontent.com/--T-k4L2d_8k/W1COYhkuLOI/AAAAAAAAF0k/-RIig91RIZIQMP1TJh-zG8qRj6gVBfQIwCHMYCw/s1600-h/image%255B6%255D"><img alt="image" border="0" height="443" src="https://lh3.googleusercontent.com/-m6G_AOPPncs/W1COZLXrEqI/AAAAAAAAF0o/wCO5MO3eYBgXHrPREY9lZ5WSib-_EYXIACHMYCw/image_thumb%255B2%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="494" /></a><br />
參考:<br />
<a href="https://walker-a.com/archives/2540" title="https://walker-a.com/archives/2540">https://walker-a.com/archives/2540</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-18784080034847782762018-07-19T01:25:00.000-07:002019-04-12T08:16:55.135-07:00解決"無法建立Visual C# 2015 編譯器"<br />
日期要加入已個已存在專案, 錯誤訊息:<br />
<a href="https://lh3.googleusercontent.com/-V0QzbexXV5Y/W1BK8xrfskI/AAAAAAAAFyI/ScyNHuuL80UDEgX7bkRq9OXAkyax5bgRQCHMYCw/s1600-h/image%255B8%255D"><img alt="image" border="0" height="221" src="https://lh3.googleusercontent.com/-_fOyikZP_Qg/W1BK903fcaI/AAAAAAAAFyM/U6pXL99r2goLSDTf0a1GVx3bWWSO7KBTQCHMYCw/image_thumb%255B4%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="540" /></a><br />
<a name='more'></a><br />
<br />
<h1>
解法</h1>
1. 打開錯誤的proj檔<br />
<a href="https://lh3.googleusercontent.com/-ksOiGwWze1s/W1BO7kNiIyI/AAAAAAAAFys/9nmf2Orso_0MTb7ybKpZ0Y2FN3P_UFrdACHMYCw/s1600-h/image%255B23%255D"><img alt="image" border="0" height="188" src="https://lh3.googleusercontent.com/-hlyzQBB5yuA/W1BO8kbuFWI/AAAAAAAAFyw/P4kybnRj08gkOqgD4jZfMUf7RcYaJhFoQCHMYCw/image_thumb%255B11%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="544" /></a><br />
搜尋程式目錄下的ProjectGuid, 如上為<br />175DD49C-4761-4D53-81BE-D44FFDC0FA86<br />
2. 應該會找到重複<br />
<br />
<a href="https://lh3.googleusercontent.com/-YhmyrDdEMK0/W1BO0fDYFoI/AAAAAAAAFyk/dZdECpAGn3APTDnbM_AWzx3yRZS_Rrz-ACHMYCw/s1600-h/image%255B22%255D"><img alt="image" border="0" height="93" src="https://lh3.googleusercontent.com/-Oie8lSp8SvM/W1BO0mAIeBI/AAAAAAAAFyo/WMsB5GiZPoYOke6dHm_nEm9w5KkubXBXwCHMYCw/image_thumb%255B10%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="512" /></a><br />
3. 把另一個專案ProjectGuid + 1, 也注意要修改參考該專案的其他專案<br />
完成後到改變原始碼控制, 將該專案解除繫結<br /><br />
<a href="https://lh3.googleusercontent.com/-YBUdEHuFZHo/W1BVKeCWZ9I/AAAAAAAAF0E/TUL022Y6eFwV_ctcZGP53OrM0hEpvdVtQCHMYCw/s1600-h/image%255B27%255D"><img alt="image" border="0" height="296" src="https://lh3.googleusercontent.com/-HIgmvsIOKR4/W1BVKyxKHbI/AAAAAAAAF0I/uTqRCSjUqion4_JL-X6LOoXfasnWeRTCACHMYCw/image_thumb%255B13%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="474" /></a><br />
4. 不過打開另一個與之衝突的proj , 會出現以下錯<br />
<a href="https://lh3.googleusercontent.com/-4tiwqXvCGyA/W1BUfQI9n6I/AAAAAAAAFz0/ka6VXTj_3j8uBJOLFxGTJuNIZ-oFfG7mQCHMYCw/s1600-h/image_thumb%255B1%255D%255B1%255D%255B4%255D"><img alt="image_thumb[1][1]" border="0" height="204" src="https://lh3.googleusercontent.com/-qHqcDvUrvbg/W1BUf-OoxXI/AAAAAAAAFz4/mMqGxq0KAfEbACxsYcBvt-_hDCZHJvKRgCHMYCw/image_thumb%255B1%255D%255B1%255D_thumb%255B2%255D?imgmax=800" style="background-image: none; border: 0px currentcolor; display: inline;" title="image_thumb[1][1]" width="318" /></a><br />
這個錯誤可能是你的SVN套件修改了專案檔<br />
把以下<br />
<PropertyGroup><br />
...<br />
<SccProjectName>Svn</SccProjectName><br />
<SccLocalPath>Svn</SccLocalPath><br />
<SccAuxPath>Svn</SccAuxPath><br />
<SccProvider>SubversionScc</SccProvider><br />
</PropertyGroup><br />
改成<br />
<SccProjectName>SAK</SccProjectName><br />
<SccLocalPath>SAK</SccLocalPath><br />
<SccAuxPath>SAK</SccAuxPath><br />
<SccProvider>SAK</SccProvider><br />
</PropertyGroup><br />
<br />
5. 關閉VS, 重新打開solution就可加入該專案了Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-76132223604861033262018-06-09T10:02:00.001-07:002018-06-09T10:02:19.508-07:00LUIS Python 2 sample 中文輸入亂碼<h3>問題:</h3><p>row_input 輸入中文會變成亂碼</p><a name='more'></a><p><br></p><h3>問題描述:</h3><p>筆者的環境為Windows 10</p><p>日前從微軟的Git下載LUIS Python2 範例</p><p> TEXT = raw_input(u'Please input the text to predict:\n')<br> CLIENT = LUISClient(APPID, APPKEY, True)<br> res = CLIENT.predict(TEXT)<br> while res.get_dialog() is not None and not res.get_dialog().is_finished():<br> TEXT = raw_input(u'%s\n'%res.get_dialog().get_prompt())<br> res = CLIENT.reply(TEXT, res)<br> process_res(res)<br>
except Exception, exc:<br> print(exc)</p><p><br></p><p>並進行中文輸入, 會得到下列錯誤</p><p><a href="https://lh3.googleusercontent.com/-pZ00mN1-vCs/WxwIFb21I9I/AAAAAAAAFwQ/q885D7t8tA4sbwMzrAAzqf3YZqOxKoC2gCHMYCw/s1600-h/image%255B3%255D"><img width="635" height="96" title="image" style="display: inline; background-image: none;" alt="image" src="https://lh3.googleusercontent.com/-ONq5QR7y2LI/WxwIGXQOUiI/AAAAAAAAFwU/RY2PjESlYM0Kpo8oDAcp4n0O6QdC9Yv9QCHMYCw/image_thumb%255B1%255D?imgmax=800" border="0"></a></p><h3>解法:</h3><p>1.Python 2 的row_input吃進來文字的編碼是根據作業系統, 我的win 10是繁體中文版,便是Big5</p><p>2. 將raw_input先解big5, 再轉為utf8</p><p> TEXT = raw_input(u'Please input the text to predict:\n').decode(‘big5’).encode(‘utf8’)</p><p>後續:</p><p>1. pyhton 3因為全部UTF8編碼, 因此無此問題 </p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-76588557787404585232018-05-15T01:46:00.000-07:002018-05-15T01:46:32.100-07:00Windows 10 VPN 無法連線<p>今天使用VPN, 出現以下訊息</p><p>『無法建立與遠端電腦的連線....』 </p><p><br></p><a name='more'></a><p>經過一番搜尋, 以下次奏可以解決:</p><p>1. 使用管理者帳號啟動"命令提示字元"</p><p>2. 輸入以下指令</p><p>Netsh int ip reset <br>Netsh winhttp reset proxy<br>Netsh winsock reset<br>Netsh advfirewall reset<br>Ipconfig /flushdns <p><br><p>3. 執行完 重新開機<p>Reference:</p><p><a title="https://answers.microsoft.com/zh-hant/windows/forum/windows_10-other_settings-winpc/win10-vpn/c9ac8301-c43b-43e6-9201-2d5a8115ed19" href="https://answers.microsoft.com/zh-hant/windows/forum/windows_10-other_settings-winpc/win10-vpn/c9ac8301-c43b-43e6-9201-2d5a8115ed19">https://answers.microsoft.com/zh-hant/windows/forum/windows_10-other_settings-winpc/win10-vpn/c9ac8301-c43b-43e6-9201-2d5a8115ed19</a></p>Unknownnoreply@blogger.com9tag:blogger.com,1999:blog-624005355529503213.post-57759157521310723302018-04-13T06:16:00.001-07:002018-04-13T06:21:58.434-07:00如何判斷兩筆資料的起始和結束日期有重疊?<h3>問題</h3><p>如何判斷兩筆資料的請始結束日期有重疊?<br>
ANS: <strong><font color="#0000ff">(StartA <= EndB) and (EndA >= StartB)</font></strong></p>
<p>Start End <br>
|---- DateRange {0} ------| <br>
證明:</p>
<p>A1. false 因為 StartA > endB<br> |---- DateRange A ------| <br>
|---Date Range B -----| </p>
<p>A2. false <br>
|---- DateRange A ------| <br> |---Date Range B -----|<br>
-----------------------------------------------------------<br>
B1. True<br> |---- DateRange A ------| <br>
|---Date Range B -----|<br> _<br>
B2. True<br>
|---- DateRange A ------| <br> |---Date Range B -----| </p>
<p>B3. True<br>
|---- DateRange A ------| <br> |---Date Range B --| </p>
<p>B4. True<br> |-- DateRange A --| <br>
|---Date Range B -----| </p>
<p> <br>
記法:<br>
導出由false兩條件,再Not<br>
Not (false條件)<br>
Not (EndB <StartA or EndA < StartB)<br>
等於<br>
(EndB >=StartA) and (EndA >= StartB)<br>
等於(調一下第一個判斷式前後順序)<br><strong><font color="#0000ff">
(StartA <= EndB) and (EndA >= StartB)</font></strong></p>
<h3>用途:</h3><p><br>
排班系統:判斷某人排班時間是否重疊<br>
會議室Booking系統:判斷某會議室booking時間是否重疊</p>
<p>Reference:<br>
<a href="https://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap">determine-whether-two-date-ranges-overlap</a></p><p><a title="http://baodad.blogspot.tw/2014/06/date-range-overlap.html" href="http://baodad.blogspot.tw/2014/06/date-range-overlap.html">date-range-overlap</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-36784367545667749262017-09-19T01:02:00.001-07:002017-09-19T01:02:15.287-07:00Gif動畫去背<p>實驗結果動作不能太快或太複雜,否則結果會跑圖</p> <p>首先, 點選到以下網站</p> <p><a title="http://www.online-image-editor.com/" href="http://www.online-image-editor.com/">http://www.online-image-editor.com/</a></p> <a name='more'></a> <p>1. 選擇上傳檔案, 瀏覽Upload</p> <p><a href="https://lh3.googleusercontent.com/-TjrBcaIE6Aw/WcDO3ztmRbI/AAAAAAAAFFg/9xa8A4R1BzIcMiNAgr5UhEFCWYRVxmLUACHMYCw/s1600-h/image%255B27%255D"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-PbrN_-_s8bc/WcDO4y1jPdI/AAAAAAAAFFk/ylgUMEbvPkU1YRK4kSCqwOpfGPxBtacHwCHMYCw/image_thumb%255B15%255D?imgmax=800" width="421" height="218" /></a></p> <p>就可以看到你上傳的Gif動畫檔</p> <p><a href="https://lh3.googleusercontent.com/-ETv71IP-tYU/WcDO5ukR5AI/AAAAAAAAFFo/sropBWYv3rUGQapLZb0SuuCxIN1C2cylQCHMYCw/s1600-h/image%255B26%255D"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-xvZtiYvn4nU/WcDO6gYnY9I/AAAAAAAAFFs/x-2sJxSPp7MsdJeLzqpDutKcOZ7h9O5PACHMYCw/image_thumb%255B14%255D?imgmax=800" width="442" height="287" /></a></p> <p>2. 選Wizrd-Trans-parency</p> <p><a href="https://lh3.googleusercontent.com/-z43O3h0PFJc/WcDO7ftlkzI/AAAAAAAAFFw/3aNwQ7Ch87oC-dWkB3wM8-i7MhRi8ZXswCHMYCw/s1600-h/image%255B2%255D"><img title="image" style="margin: 0px; display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-u9Xz_CRzwdw/WcDO8X9ss-I/AAAAAAAAFF0/h_7RASyoxfUVm0ao0ExXiGaHqVoYWA5RACHMYCw/image_thumb?imgmax=800" width="244" height="84" /></a></p> <p>3. 會出現一隻手, 在要去背處點下, 畫面會呈灰色, 不要驚慌表示在處理中, 要等個10-30秒</p> <p><a href="https://lh3.googleusercontent.com/-sOHQn7IG0L4/WcDO84koVnI/AAAAAAAAFF4/Tg5zhJ7P_GgmH3WvXWuSP4Zm3T6NCQu4ACHMYCw/s1600-h/image%255B25%255D"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-IDJAuUA9sOc/WcDO9pW3XOI/AAAAAAAAFF8/GB8bgwKNKxQ0PgGiVCaI53EVDTpXXab4ACHMYCw/image_thumb%255B13%255D?imgmax=800" width="457" height="321" /></a></p> <p>處理中</p> <p><a href="https://lh3.googleusercontent.com/-ZXQaOFOBHGE/WcDO-WbevfI/AAAAAAAAFGA/uIWXTsZA0HYVxBU-y6um4MNn_CzgP9RgACHMYCw/s1600-h/image%255B24%255D"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-cyDlsG5iXU8/WcDO-8pUZJI/AAAAAAAAFGE/7KSc0x7biR0UXQWY27AEBwnkafultJg2wCHMYCw/image_thumb%255B12%255D?imgmax=800" width="463" height="293" /></a></p> <p>4. 完成了</p> <p>完美去背 <br /><a href="https://lh3.googleusercontent.com/-LElsYSN4Bt0/WcDO_en6ooI/AAAAAAAAFGI/UEgxn-W0ANwHG93goKANITDrAixxtDs_QCHMYCw/s1600-h/image%255B23%255D"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-MXfEGomWLR0/WcDPAK4dUOI/AAAAAAAAFGM/b19Zu-UygwMe3CGaG_VB9rBqplhVsYbJgCHMYCw/image_thumb%255B11%255D?imgmax=800" width="453" height="301" /></a></p> <p>5. 點save存到想要的地方</p> <p><a href="https://lh3.googleusercontent.com/-JXsEpciWsKU/WcDPA4xiYkI/AAAAAAAAFGQ/5pYxLrpJNt4yu8mRdJRL0Y2oz-g9ivViACHMYCw/s1600-h/image%255B30%255D"><img title="image" style="margin: 0px; display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-bkGfHd4vtmY/WcDPBnTm5yI/AAAAAAAAFGU/Dn9XSW48gEE1jcCgtAQPzh8cgJmpZhonACHMYCw/image_thumb%255B16%255D?imgmax=800" width="198" height="113" /></a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-26046057328824922332017-09-14T02:59:00.000-07:002017-09-14T05:01:36.612-07:00Sqlserver Rebuild or Orgnize index <p>這兩者差別</p> <a name='more'></a> <p><strong>Index Rebuild : </strong>This process drops the existing Index and Recreates the index. <br />語法:</p> <p><code><font color="#0000ff">USE AdventureWorks; <br />GO <br />ALTER INDEX ALL ON Production.Product REBUILD <br />GO</font></code></p> <p><strong>Index Reorganize : </strong>This process physically reorganizes the leaf nodes of the index.</p> <p>語法:</p> <p><code><font color="#0000ff">USE AdventureWorks; <br />GO <br />ALTER INDEX ALL ON Production.Product REORGANIZE <br />GO</font></code></p> <p>破碎查詢</p> <p><font color="#0000ff">USE AdventureWorks2012; </font></p> <p><font color="#0000ff">GO </font></p> <p><font color="#0000ff">-- Find the average fragmentation percentage of all indexes</font></p> <p><font color="#0000ff"> -- in the HumanResources.Employee table. </font></p> <p><font color="#0000ff">SELECT a.index_id, name, avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(N'AdventureWorks2012'), OBJECT_ID(N'HumanResources.Employee'), NULL, NULL, NULL) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id; </font></p> <p><font color="#0000ff">GO</font> </p> <p><b>微軟建議</b></p> <table cellpadding="0" border="1"><tbody> <tr> <td> <p><b>avg_fragmentation_in_percent </b><b>值avg_fragmentation_in_percent value</b></p> </td> <td> <p><b>修正的陳述式Corrective statement</b></p> </td> </tr> <tr> <td> <p>> 5% 且 < = 30%</p> </td> <td> <p>ALTER INDEX REORGANIZEALTER INDEX REORGANIZE</p> </td> </tr> <tr> <td> <p>> 30%> </p> </td> <td> <p>ALTER INDEX REBUILD WITH (ONLINE = ON)</p> </td> </tr> </tbody></table> <p><b></b></p> <p>參考:</p> <p><a title="https://docs.microsoft.com/zh-tw/sql/relational-databases/indexes/reorganize-and-rebuild-indexes" href="https://docs.microsoft.com/zh-tw/sql/relational-databases/indexes/reorganize-and-rebuild-indexes">https://docs.microsoft.com/zh-tw/sql/relational-databases/indexes/reorganize-and-rebuild-indexes</a></p> <p><a title="https://blog.sqlauthority.com/2007/12/22/sql-server-difference-between-index-rebuild-and-index-reorganize-explained-with-t-sql-script/" href="https://blog.sqlauthority.com/2007/12/22/sql-server-difference-between-index-rebuild-and-index-reorganize-explained-with-t-sql-script/">https://blog.sqlauthority.com/2007/12/22/sql-server-difference-between-index-rebuild-and-index-reorganize-explained-with-t-sql-script/</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-31350425918901893502017-08-03T07:10:00.001-07:002018-07-05T05:41:13.591-07:00Illustrator 基本操作 -轉成PNG等圖檔,文字轉外框如果要將AI的某區域輸出成PNG..<br />
<a name='more'></a><br />
請依照一下步驟:<br />
1. 點空心三角箭頭<br />
<a href="https://lh3.googleusercontent.com/-rx-3IXPYHCs/WYMuwYulT7I/AAAAAAAAFAk/W0BjlCZBgkUGsC9dr9ryv82t_LSoEj4NgCHMYCw/s1600-h/image%255B7%255D"><img alt="image" border="0" height="278" src="https://lh3.googleusercontent.com/-4sJ3Weoa7J0/WYMuxS2gDSI/AAAAAAAAFAo/AhuiFTCox6wm2i2OUN6La0BD5oi7M9ZZACHMYCw/image_thumb%255B3%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="140" /></a><br />
2. 選取要輸出區域<br />
<a href="https://lh3.googleusercontent.com/-W6lor4kp3EE/WYMuyV1reII/AAAAAAAAFAs/d3AscDzd3lYrV-h1qkPjRvc_voFzniVrgCHMYCw/s1600-h/image%255B16%255D"><img alt="image" border="0" height="440" src="https://lh3.googleusercontent.com/-kG2y5RtiXtU/WYMuzIgWg5I/AAAAAAAAFAw/4YzDU52TNo85tMAz5M1CIRN8VdHDe4n1ACHMYCw/image_thumb%255B8%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="570" /></a><br />
3. 選檔案-轉存-轉存為<br />
<a href="https://lh3.googleusercontent.com/-3c39GBzzCIY/WYMu0NLP_ZI/AAAAAAAAFA0/bntigyfPNdw4eWg2qSDSkbB7Q9hx9NocgCHMYCw/s1600-h/image%255B15%255D"><img alt="image" border="0" height="477" src="https://lh3.googleusercontent.com/-1MW0uXp9EKA/WYMu1SUzsMI/AAAAAAAAFA4/Xq1chSkh6LkVdYkm2eoxp0sgFhCFmsjoACHMYCw/image_thumb%255B7%255D?imgmax=800" style="background-image: none; display: inline;" title="image" width="577" /></a><br />
<br />
文字轉外框<br />
<a href="http://jun431869.pixnet.net/blog/post/38559133-illustrator---%E6%96%87%E5%AD%97%E8%BD%89%E5%A4%96%E6%A1%86">http://jun431869.pixnet.net/blog/post/38559133-illustrator---%E6%96%87%E5%AD%97%E8%BD%89%E5%A4%96%E6%A1%86</a><br />
<br />
<br />
參考:<br />
<a href="https://www.youtube.com/watch?v=-x3PKnRTlZ0" title="https://www.youtube.com/watch?v=-x3PKnRTlZ0">https://www.youtube.com/watch?v=-x3PKnRTlZ0</a><br />
<a href="http://flowerxun.pixnet.net/blog/post/145337038-%E3%80%90ai%E3%80%91%E8%BD%89jpeg%E5%9C%96%E6%AA%94%E5%B0%8F%E5%B0%8F%E6%95%99%E5%AD%B8" title="http://flowerxun.pixnet.net/blog/post/145337038-%E3%80%90ai%E3%80%91%E8%BD%89jpeg%E5%9C%96%E6%AA%94%E5%B0%8F%E5%B0%8F%E6%95%99%E5%AD%B8">http://flowerxun.pixnet.net/blog/post/145337038-%E3%80%90ai%E3%80%91%E8%BD%89jpeg%E5%9C%96%E6%AA%94%E5%B0%8F%E5%B0%8F%E6%95%99%E5%AD%B8</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-14119591986810543692017-07-23T21:39:00.001-07:002017-07-23T21:39:00.677-07:00解決打開Visual Studio 2012/3 出現"找不到符合條件的約束"<p>當你打開VS 2012/3時出現以下錯誤,確定後,要把VS關閉又關不掉:</p> <a name='more'></a> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn8Vn8QaPhAa832iOmBGmJrhpHLPyW7LFo46-RLuPDAFHr0gTS-m_47-c56oDd6MCeewayVGmZyWeHx3RNQBUgvkqSWLxCG_4i6e82ZNXwL6CM0TpLHnGaZ64PdM_tVJI3ynTWTighx5Y/s1600-h/image%255B4%255D"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://lh3.googleusercontent.com/-n5T7UuaTlG8/WXV54oPEgvI/AAAAAAAAFAM/keQEVfcLaqshS7xyFKCbySEqfeH9WXUBACHMYCw/image_thumb%255B2%255D?imgmax=800" width="547" height="298" /></a></p> <p><font color="#0000ff">ContractName <br />Microsoft.VisualStudio.Utilities.IContentTypeRegistryService <br />RequiredTypeIdentity <br />Microsoft.VisualStudio.Utilities.IContentTypeRegistryService</font></p> <p><font color="#0000ff"></font></p> <h3>原因</h3> <p>可能有安全性更新,這時會影響到有些套件無法載入,當彈出警告視窗時你又點不要顯示,就可能造成以上的錯誤。</p> <h3>解法</h3> <p>先把VS的Process刪除,然後</p> <p>刪除以下目錄資料,再重開VS</p> <p><strong> Visual Studio 2012:</strong></p> <p>%AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache</p> <p><strong> Visual Studio 2013:</strong></p> <p>%AppData%\..\Local\Microsoft\VisualStudio\12.0\ComponentModelCache</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-2043121774438982192017-06-28T05:09:00.001-07:002017-06-28T05:09:48.467-07:00Log4net在windows service的設定<p>如果我們開發的windows service要如何設定log4net來正常運作呢?</p><p>請依以下步驟實作</p><a name='more'></a><p><br></p><p><strong>1. 在 AssemblyInfo.cs 加入以下語法</strong>:</p><pre><code>[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]</code></pre><p>2. <strong>Log4net.Config</strong></p><pre><code><font color="#0000ff"><?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> <param name="File" value="C:\logs\winservice.log"/> <lockingModel type="log4net.Appender.FileAppender+MinimalLock,log4net" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="2" /> <maximumFileSize value="1MB" /> <staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<root> <level value="ALL" /> <appender-ref ref="LogFileAppender" />
</root>
</log4net></font></code></pre><p>3. C# 程式宣告</p><pre><code>private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(typeof(class_name));</code></pre><p>4. 寫log</p><p>_log.Info(“Info”);</p><p>_log.Warm(“Warm”);</p><pre><code><br></code></pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-90967835724651803302017-06-26T06:44:00.001-07:002017-06-26T20:27:39.008-07:00解決VS 2015未正確載入套件 ‘visula Studio Exploers and Designers Package’<p>當我們打開Vs 2015是出現以下錯誤訊息要如何解決?</p><a name='more'></a><p><br></p><p><a href="https://lh3.googleusercontent.com/-Jf7jkHOwXko/WVEPm6Qph-I/AAAAAAAAEzk/DXuTQdeiHzUIOipTFpJMMjiUp9Q5fL6tgCHMYCw/s1600-h/image%255B3%255D"><img width="594" height="316" title="image" style="display: inline; background-image: none;" alt="image" src="https://lh3.googleusercontent.com/-O9hHZd3C1Dg/WVEPn4PJ22I/AAAAAAAAEzo/ztBy-vKkwEQ8EkCe8gWDmNYVD6Jn8W7KQCHMYCw/image_thumb%255B1%255D?imgmax=800" border="0"></a></p><h3>以下為可能方案, 一般為solution2 – 2可解問題</h3><h3>Solution1</h3><ol><li>關閉所有 VS 視窗
<li>刪除目錄<br> <code>C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache</code><li>刪除目錄 <code>[Solution Folder]\.vs</code></li></ol><h3>Solution2</h3><p>cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE<p>1. 啟動IDE 在 safe mode <p>Devenv.exe /SafeMode <p>2. 重置IDE為預設設定<p><font color="#0000ff">Devenv.exe /ResetSettings</font> <p>3. 移除 commands 和command UI 有關於特別的Add-in<br>Devenv.exe /ResetAddin <p>4. 清除所有加入到VSPackages的SkipLoading tags <br>Devenv.exe /ResetSkipPkgsUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-64964263653397861842017-04-25T00:46:00.001-07:002017-04-25T00:48:50.531-07:00設定Teams的Bot測試環境<p> </p> <h3>Problem</h3> <p>當我們開發好一個Bot也在Bot framework protal註冊了,使用預設的Web Chat測試也沒問題,在Bot Framework portal把Teams Enable了,接者點Channels裡Microsoft Teams的Add To Teams。 <br /><a href="https://lh3.googleusercontent.com/-gmvF62wkxss/WP7-upkSihI/AAAAAAAAEc0/uvevyCsPviMgABipVNFO5hbHZFTGJviOACHM/s1600-h/image%255B11%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-sgN10O_XfkY/WP7-vQOgEdI/AAAAAAAAEc4/0KIFtLVBsHEiejhIucbYU3SnVgT56d9sgCHM/image_thumb%255B5%255D?imgmax=800" width="286" height="149" /></a></p> <p>打開Teams畫面, 詢問機器人卻都沒回應@@</p> <a name='more'></a> <p> <br /><a href="https://lh3.googleusercontent.com/-eTEGtmxu1ZE/WP7-v4Y8iZI/AAAAAAAAEc8/Sia79nWrU7QxkMmalP91v2iu43rL9eYAgCHM/s1600-h/image%255B13%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUDox9Q-2iN3QBF7u9ItFKSd5qaTW98UjsbYexuzdObMgNMIqCQYHr_Thbuvrjz5X_nH7Wp9TRt_xKMjdgl0awU3ZFKV9J5ETlw9hSqHtRg2D9KVCzXcRYSNfKiwTC98zgahjrbV97Gco/?imgmax=800" width="530" height="377" /></a></p> <h3>Why</h3> <p>根據Teams 增加Bot設定在小組--Bot Dashboard,右下會有一個連結</p> <p><font color="#0000ff">Sideloading your bot or tab in a team</font> </p> <p><a title="https://msdn.microsoft.com/en-us/microsoft-teams/botsadd" href="https://msdn.microsoft.com/en-us/microsoft-teams/botsadd">https://msdn.microsoft.com/en-us/microsoft-teams/botsadd</a></p> <p><a title="https://msdn.microsoft.com/en-us/microsoft-teams/sideload" href="https://msdn.microsoft.com/en-us/microsoft-teams/sideload">https://msdn.microsoft.com/en-us/microsoft-teams/sideload</a></p> <h3>Solution</h3> <p>依下列步驟排除:</p> <p>1. 要有Office 365的開發者帳號</p> <p>2. 登入Office 365 Admin portal後,啟動Office 365 開發者設定步驟</p> <p>3. 加入Teams到Office 365開發環境 <br /><a title="https://msdn.microsoft.com/en-us/microsoft-teams/setup" href="https://msdn.microsoft.com/en-us/microsoft-teams/setup">https://msdn.microsoft.com/en-us/microsoft-teams/setup</a></p> <p>登入Office 365,設定--Services & add-ins,找到Teams, 點兩下, </p> <p><a href="https://lh3.googleusercontent.com/-Q9vbaTlSmr0/WP7-xBLLhwI/AAAAAAAAEdE/LZVY9-VngLI6iNS3O6PytRvPX1JcPRYLgCHM/s1600-h/image%255B53%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-QZSPlXtj_W0/WP7-xpmBPZI/AAAAAAAAEdI/OsBbrFDqJvsrlo2cOPLh3yLDUstDmFv0wCHM/image_thumb%255B26%255D?imgmax=800" width="559" height="324" /></a></p> <p>點兩下進去設定,機器人與索引標籤的兩個屬性都要開啟,然後點<strong>儲存</strong></p> <p><a href="https://lh3.googleusercontent.com/-S6I7K65nDik/WP7-yPEZmHI/AAAAAAAAEdM/FUnknJ4qokk1yfa0TMMRM968HPckMfz1gCHM/s1600-h/image%255B57%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-rYS_fsICswI/WP7-yuCxy0I/AAAAAAAAEdQ/ZDoFlhVchnM9_kxFSuFuY08_3tQUlZ7XgCHM/image_thumb%255B28%255D?imgmax=800" width="464" height="542" /></a></p> <p>4. 如果有已登入Teams先登出,再次登入Teams, </p> <p><a title="https://msdn.microsoft.com/en-us/microsoft-teams/sideload" href="https://msdn.microsoft.com/en-us/microsoft-teams/sideload">https://msdn.microsoft.com/en-us/microsoft-teams/sideload</a></p> <p>選小組--你的群組--右鍵--檢視小組</p> <p><a href="https://lh3.googleusercontent.com/-9PwgvtttVpE/WP7-zM6VppI/AAAAAAAAEdU/55Z7Pi5RT-8Z7QyM0LiSMNIkscgYmozdgCHM/s1600-h/image%255B17%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-qGFB_0OT8Yg/WP7-zvsZmzI/AAAAAAAAEdY/-K4KUVHjvA05BugRuIz0OI7YS4oTdT8TQCHM/image_thumb%255B9%255D?imgmax=800" width="497" height="370" /></a></p> <p>切Bot Tab, 檢查右下Sideloading your bot or tab in a team 字樣是否出現, 如果有就可以正常測試了。</p> <p><a href="https://lh3.googleusercontent.com/-dG3-zYu7m3Q/WP7-0LD5MyI/AAAAAAAAEdc/PPfM-uVGndccVubAq2tDV23p8MM-Y-_EgCHM/s1600-h/image%255B26%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-dOrTG8jS7ro/WP7-04vk8FI/AAAAAAAAEdg/TyIbmgEUbjUxmLMgjh_veI3xzlmNNO6HACHM/image_thumb%255B13%255D?imgmax=800" width="554" height="533" /></a></p> <p>5. 回到Bot framework protal, 在點一次Add to Teams, 會啟動Teams和我們的機器人會話 <br /><a href="https://lh3.googleusercontent.com/-vXzIiyevkW4/WP7-1VeXpLI/AAAAAAAAEdk/npkOTKPu_9w2Jq5DHMUDAa7SY_2qq7q_ACHM/s1600-h/image%255B21%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-q4hIAW8oFA4/WP7-2INm8cI/AAAAAAAAEdo/olBkcZBfgrs3Xp56jjKc7mAvfXlEeQvPQCHM/image_thumb%255B10%255D?imgmax=800" width="286" height="149" /></a></p> <p>這時對話就有反應了</p> <p><a href="https://lh3.googleusercontent.com/-EXF0_Eod7jA/WP7-2SWTvtI/AAAAAAAAEds/gsQjeohjsSA62dCPuiuygCnfwi33OyOfQCHM/s1600-h/image%255B25%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-tzcKoNgvLJU/WP7-242PeWI/AAAAAAAAEdw/MC8Qf3RftOYsNchANAqU1PoRxqABfZLYACHM/image_thumb%255B12%255D?imgmax=800" width="549" height="379" /></a></p> <h3>其他和Bot聊天測試方式</h3> <p>1. Teams 的聊天點搜尋旁的編輯圖式</p> <p><a href="https://lh3.googleusercontent.com/-NQmtM95lRPo/WP7-3gpmlsI/AAAAAAAAEd0/JtX8OGeU-VkIKL8U64_4FXFM_rFZOu6jACHM/s1600-h/image%255B35%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-GwgrqutMtzM/WP7-4J4MmFI/AAAAAAAAEd4/YBmo6KDESqchOBA-4w6FZzoNMC_z-SYoACHM/image_thumb%255B18%255D?imgmax=800" width="367" height="149" /></a></p> <p>2. 收件者輸入你在Bot Portal上的Microsoft App ID</p> <p><a href="https://lh3.googleusercontent.com/-gPN0rrMLAos/WP7-4bEVseI/AAAAAAAAEd8/_MtinrKA8z8iu-X5CcGA4SkifC_h9fSWACHM/s1600-h/image%255B33%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-MI0RsgC6x4A/WP7-44HDZCI/AAAAAAAAEeA/h4ud56r1Pp4nS58DBxDvkN0bzlX74Te4gCHM/image_thumb%255B16%255D?imgmax=800" width="367" height="155" /></a></p> <p>Microsoft AppID</p> <p><a href="https://lh3.googleusercontent.com/-6tjtqdOuoj0/WP7-5q_VI6I/AAAAAAAAEeE/3C6RXy-PczQ9WUvUZVmzK06vPfcNzJk5wCHM/s1600-h/image%255B44%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-IGdQVyMDxFc/WP7-6XPBtVI/AAAAAAAAEeI/txJfzoiBQy8ZwDa3vvTJoZsr3BTSAcPBACHM/image_thumb%255B21%255D?imgmax=800" width="425" height="464" /></a></p> <p>輸入ID後就可以帶出你的機器人</p> <p> <br /><a href="https://lh3.googleusercontent.com/-66XAfCPFcOo/WP7-6uzIdvI/AAAAAAAAEeM/jJEje-EX_GASKEl9uVTCKXxHIP6EjkrugCHM/s1600-h/image%255B66%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-UcHNfR_dVcM/WP7-7I5Vb4I/AAAAAAAAEeQ/SSaA2ImGbTMpf5ZOh8b8AB2JlbnyQSXPwCHM/image_thumb%255B33%255D?imgmax=800" width="459" height="153" /></a></p> <p>選擇後就可開始對話了</p> <p><a href="https://lh3.googleusercontent.com/-_ErjGN1TWEI/WP7-7supEnI/AAAAAAAAEeU/EFG6gGnSGdYxHYVCUKiMSHE-Vs-yuXy-ACHM/s1600-h/image%255B65%255D"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-XI8E-UsvBzg/WP7-7z9aDnI/AAAAAAAAEeY/0ojJNs1Ug2gwI_hbNU7UzWZNKWKiIneXwCHM/image_thumb%255B32%255D?imgmax=800" width="456" height="141" /></a></p> <p>另外還有Sideloading your bot or tab in a team 釘在Teams上也可試試, 參考以下</p> <p><a title="https://msdn.microsoft.com/en-us/microsoft-teams/sideload" href="https://msdn.microsoft.com/en-us/microsoft-teams/sideload">https://msdn.microsoft.com/en-us/microsoft-teams/sideload</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-23780055694753122932017-04-21T05:24:00.001-07:002017-04-21T05:28:43.366-07:00解決 Visual Studio未正確載入套件Visual Studio Explore<h3>Problem</h3> <p>日前將Visual studio方案從GitHub搬到VSO <br />載入時發生以下錯誤:</p> <p><font color="#0000ff">未正確載入套件Visual Studio Explore…</font></p> <a name='more'></a> <p><font color="#0000ff"></font></p> <p><a href="https://lh3.googleusercontent.com/-T09G5h_0v6k/WPn525a6ZtI/AAAAAAAAEcE/rYxStdCGh60/s1600-h/image3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-kuNClXASyec/WPn53dxepSI/AAAAAAAAEcI/5V_h_aUhdqg/image_thumb1.png?imgmax=800" width="445" height="283" /></a></p> <h3>Solution</h3> <p>1. 關閉所有 VS 視窗</p> <p>2. 刪除目錄</p> <blockquote> <p> <code>C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache</code></p> </blockquote> <p>3. 刪除目錄 <code>[方案目錄]\.vs</code></p> <p><code>再打開VS就正常了</code></p> <h3>專案無原始碼控制問題</h3> <p><font style="font-weight: normal">如下,專案按右鍵也沒有加入原始碼的按鈕</font></p> <p><a href="https://lh3.googleusercontent.com/-4iSG6rTTZ2s/WPn53l9MqgI/AAAAAAAAEcM/2Xk84pkvAJM/s1600-h/image6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmPpWSXIsGrYH9IaAbhWGPfAY5AeQhnC_NfjHTSXhGH3XzpjJMg4VWDz3b03Lx2_goam261cEEjGXj5yBboEcQnrc4NFQ2qx4e0PD_5VB25s3bMtUOu6DHXLCrFznd3cXl-1J6ZQqzQFg/?imgmax=800" width="61" height="47" /></a></p> <p>這時打開原始碼控制總管</p> <p>點方案總管下的專案,然後在原始碼控制資料夾,右擊該專案選<font style="background-color: #ffff00"></font><font style="style" color="#0000ff"><strong>將項目加入資料夾</strong></font></p> <p>該專案就會有加號。<font style="style" color="#0000ff"><strong> <br /></strong></font></p> <p><a href="https://lh3.googleusercontent.com/-8N7-RVeySbo/WPn54cYzr1I/AAAAAAAAEcU/Oe1j1UgVnAo/s1600-h/image%25255B4%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-_siT8w3Dpfs/WPn54pbGtgI/AAAAAAAAEcY/hrM-Zzgv-gg/image_thumb%25255B1%25255D.png?imgmax=800" width="371" height="163" /></a></p> <p>這時把方案關閉再重開,方案就會變成待簽入狀態,這時就可以順利簽入VSO。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-70079081690048582012017-03-30T08:18:00.001-07:002017-04-18T06:13:20.978-07:00打造客服聊天機器人(2)-Microsoft Bot Framework篇<br />
<strong><span style="font-size: medium;">二. 利用BoFramework建置客服機器人WebAPI</span></strong><br />
這篇我們要利用Bot Framework來建置我們的客服機器人Web AP。前置條件是已在LUIS訓練好您的機器人,確定完成後,請依以下步驟來控制你的聊天機器人,這裡我們不會連結Bot Framwork Connector的中繼服務,而是直接連接LUIS:<br />
<a name='more'></a><strong><span style="font-size: medium;">1. 下載Bot Template</span></strong> <br />
<a href="http://aka.ms/bf-bc-vstemplate">LINK</a> , 儲存 zip 檔並解壓縮放到Visual Studio 2015 templates 目錄<br />
"%USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#\"<br />
<strong><span style="font-size: medium;">2. 建立一個Bot專案</span></strong><br />
Visual C# – Bot Application<br />
<a href="https://lh3.googleusercontent.com/-ue-CZ-iq5aM/WN0hvrEAc1I/AAAAAAAAEYw/QRkx5SqW-No/s1600-h/image%25255B7%25255D.png"><img alt="image" border="0" height="284" src="https://lh3.googleusercontent.com/-0iWAw_qEq54/WN0hwCwo8oI/AAAAAAAAEY0/8YBH2E_RPPg/image_thumb%25255B3%25255D.png?imgmax=800" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="534" /></a><br />
<span style="font-size: medium;"><strong>3.專案右鍵-管理Nuget套件</strong></span><br />
輸入Microsoft.Bot.Builder,找到v3.5.5版,先解除原有版本,再點<strong>安裝 。</strong><br />
<a href="https://lh3.googleusercontent.com/-q1vdhod8okU/WN0hwhGDI5I/AAAAAAAAEY4/Nos1Ni76cQo/s1600-h/image%25255B8%25255D.png"><img alt="image" border="0" height="156" src="https://lh3.googleusercontent.com/-Wdg-7-gUrkc/WN0hxR-Ue4I/AAAAAAAAEY8/50F3ptXtcsA/image_thumb%25255B4%25255D.png?imgmax=800" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="522" /></a><br />
<strong><span style="font-size: medium;">4. 方案下新增以下資料夾</span></strong><br />
<span style="color: blue;">Serialization</span><br />
<span style="color: blue;">Services</span><br />
<span style="font-size: medium;"><strong>5. 在Serialization下加入三個Entity</strong></span><br />
我們知道Luis會回覆以下資料:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmKhVCNXaUEkVu08xq3j2UJGVPWHP5O2Rb7jEy0fTl6y5tEw9u3Ewbq6vyylIg5Ms6yITzqBWYt-naDW_vxIg7__KBdvcEk9j_RiM8JNJNVGCzoaw12ZmAH4_HI-FqILH-SllQ9soOOec/s1600-h/image_thumb50%25255B3%25255D.png"><img alt="image_thumb50" border="0" height="553" src="https://lh3.googleusercontent.com/-jeExPwyccXM/WN0hyUKK0UI/AAAAAAAAEZE/0oIzFo_VUWE/image_thumb50_thumb.png?imgmax=800" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image_thumb50" width="473" /></a><br />
根據以上建立以下的Entity<br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
//Entity.cs 關鍵字物件
namespace ChatBot.Serialization
{
public class Entity
{
public string entity { get; set; }
public string type { get; set; }
public int startIndex { get; set; }
public int endIndex { get; set; }
public double score { get; set; }
}
}
//Intent.cs 意圖物件
namespace ChatBot.Serialization
{
public class Intent
{
public string intent { get; set; }
public double score { get; set; }
}
}
//Utterance.cs 表示整個Luis傳回Json物件
using System.Runtime.Serialization;
using System.Collections.Generic;
namespace ChatBot.Serialization
{
[DataContract]
public class Utterance
{
[DataMember]
public string query { get; set; }
[DataMember]
public List<intent> intents { get; set; }
[DataMember]
public List<entity> entities { get; set; }
}
}
</pre>
</div>
<strong><span style="font-size: medium;">6. 在Services下加入Luis.cs</span></strong><br />
這個類別主要是跟前一篇設定好的LUIS服務進行請求,成功的話就會轉成<br />
Utterance物件。<span style="color: blue; font-size: medium;">請特別注意</span>,這裡要將subscriptionkey 改為您在LUIS 的Programmantic API ID。 <br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
public static async Task<utterance> GetResponse(string message)
{
using (var client = new HttpClient())
{
//LUIS 的Programmantic API ID
const string subscriptionkey = "99d029664ec000058cbe1234f65eb645";
//C# 6 called Interpolated Strings, {變數名稱} = > {authKey} {message}
var url = $"https:\\westus.api.cognitive.microsoft.com\luis\v2.0\apps\XXXXX
subscription-key={subscriptionkey}&timezoneOffset=0.0
&verbose=true&q={message}";
……….
//將LUIS返回的Json 轉到 Utterance物件
……….
var list = (Utterance)js.ReadObject(ms);
return list;
}
</pre>
</div>
<strong><span style="font-size: medium;">7. MessagesController.cs 設定回傳訊息</span></strong><br />
這裡主要是Post這函式負責接收前面模擬器或聊天機器人UI程式,傳遞的Action物件<br />
我們再將這物件傳送LUIS取得辩試結果,並回覆訊息和狀態<br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
public async Task<HttpResponseMessage> Post([FromBody]Activity message)
{
var connector = new ConnectorClient(new Uri(message.ServiceUrl));
//跟LUIS取得辩試結果,並準備回覆訊息
var resposta = await Response(message);
if (resposta!=null)
{
var msg = message.CreateReply(resposta, "zh-TW");
//回傳訊息
await connector.Conversations.ReplyToActivityAsync(msg);
}
//回傳狀態
return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
}
</pre>
</div>
呼叫LUIS,並準備回覆訊息<br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
private static async Task<Activity> GetLuisResponse(Activity message)
{
Activity resposta = new Activity();
//Call LUIS Service
var luisResponse = await Luis.GetResponse(message.Text);
….
return resposta;
}
</pre>
</div>
<strong><span style="font-size: medium;">8. 測試</span></strong><br />
你要先去下載<a href="https://docs.botframework.com/en-us/tools/bot-framework-emulator/">Bot framework Emulator</a>V3 , 安裝好後將專案編譯執行,結果會打開一個瀏覽視窗,並記錄一下port,這裡是5751。<br />
<a href="https://lh3.googleusercontent.com/-CevmwIR1iV8/WN0hyzqJJwI/AAAAAAAAEZI/pAzaJeEzcKo/s1600-h/image%25255B15%25255D.png"><img alt="image" border="0" height="246" src="https://lh3.googleusercontent.com/-8PH8joR4aGw/WN0hzSdUFGI/AAAAAAAAEZM/GQt9qXjO4nU/image_thumb%25255B7%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="532" /></a><br />
執行Bot模擬器, 網址是<a href="http://localhost:5751/api/messages" title="http://localhost:5751/api/messages">http://localhost:5751/api/messages</a><br />
因為是Local測試,所以Microsoft APP ID/Password都不用打,送出後回覆200表示正常。<br />
<a href="https://lh3.googleusercontent.com/-HpW-y7eHeBw/WN0h0N3cZCI/AAAAAAAAEZQ/HMlfgZrJH-8/s1600-h/image%25255B19%25255D.png"><img alt="image" border="0" height="336" src="https://lh3.googleusercontent.com/-ugAniN6GvpA/WN0h02dJ-WI/AAAAAAAAEZU/AaaFrHy5o2o/image_thumb%25255B9%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="531" /></a><br />
接著測試一段文字,也成功的辨識了。<br />
<a href="https://lh3.googleusercontent.com/-uA00lo-C1t0/WN0h1EXL5mI/AAAAAAAAEZY/Jho8HVb3kcU/s1600-h/image%25255B24%25255D.png"><img alt="image" border="0" height="453" src="https://lh3.googleusercontent.com/-2dfasacEXK8/WN0h1rgB0hI/AAAAAAAAEZc/Cpx1GXwQT5Y/image_thumb%25255B12%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="453" /></a><br />
到這裡WebAPI已經完成,以下是程式碼:<br />
<strong><span style="font-size: medium;">程式碼</span></strong><br />
<a href="https://github.com/johnsonkao/MyChatBot" title="https://github.com/johnsonkao/MyChatBot">https://github.com/johnsonkao/MyChatBot</a><br />
<span style="font-size: medium;"><strong>轉換門</strong></span><br />
<a href="http://trufflepenne.blogspot.tw/2017/03/1-luis.html"><span style="font-size: medium;">打造客服聊天機器人(1)-LUIS篇</span></a><strong><a href="http://trufflepenne.blogspot.tw/2017/03/1-luis.html"><span style="font-size: medium;"><<</span></a><span style="font-size: medium;"> </span></strong> <br />
<strong><span style="font-size: medium;">參考資訊:</span></strong><br />
<a href="https://dev.botframework.com/bots/new">Bot Framework註冊</a><br />
<a href="https://docs.botframework.com/en-us/tools/bot-framework-emulator/">Bot framework Emulator</a><br />
<a href="https://github.com/microsoft/botframework-emulator/wiki/Getting-Started">Bot framework DOC</a><br />
<a href="https://github.com/Microsoft/BotBuilder/tree/master/CSharp">Bot framework Source & Sample</a><br />
<a href="https://www.youtube.com/watch?v=I_dNv_t0c_Q">Introduce Bot framework</a><br />
<a href="https://github.com/andreluizsecco/ChatBotSample/tree/master/ChatBot">bot framework V3 and LUIS with VS2015</a><br />
<a href="https://dotblogs.com.tw/maduka/2016/07/10/172428">小白-Bot Framework V3</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-15490699576288140212017-03-30T08:15:00.008-07:002017-03-30T18:45:41.809-07:00打造客服聊天機器人(1)-LUIS篇<p>最近人工智慧是很熱的主題,聊天機器人的關注度有提高不少。本文將討論如何利用微軟的人工智慧服務來打造一個電信公司的聊天機器人,這個將要出生的小嬰兒,初步的功能就只有:</p> <blockquote> <p><font size="4"><font color="#9b00d3" size="4">能夠回答各電信公司的Iphone資費方案</font></font></p> </blockquote> <p>舉例:</p> <blockquote> <p><font color="#666666">顧客:我想知道台哥大的Iphone7資費方案</font></p> <p><font color="#666666">機器人:請參考<u>台哥大的Iphone7資費方案</u></font></p> </blockquote> <a name='more'></a> <p><strong>我們的系統架構大致如下:</strong></p> <p><a href="https://lh3.googleusercontent.com/-IGVjkQTJQwA/WNuVpwrQvGI/AAAAAAAAEU8/8KLnz3wk160/s1600-h/image%25255B24%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-u0-wEiMPhNc/WNuVrOMkEOI/AAAAAAAAEVA/BKuTc9OI4cU/image_thumb%25255B14%25255D.png?imgmax=800" width="563" height="348" /></a></p> <p><strong><font size="3">聊天程式</font></strong></p> <blockquote> <p>聊天的UI呈現,可以是Windows Form,Web,Facebook messanger,Line …,UI</p> </blockquote> <p><strong><font size="3">客服機器人WebAPI</font></strong></p> <blockquote> <p>負責接收聊天程式客戶發送的句子,轉送給LUIS.ai進行語意分析,得知顧客意圖(Intent)和關鍵字(Entity),到知識庫找出對應的句子,再回傳給聊天程式。</p> </blockquote> <p><strong><font size="3">LUIS.ai</font></strong></p> <blockquote> <p>LUIS目的是建立語意分析的模型,其訓練模式是<a href="https://zh.wikipedia.org/wiki/%E7%9B%A3%E7%9D%A3%E5%BC%8F%E5%AD%B8%E7%BF%92">監督式學習</a>(Supervised learning)。訓練好的模型,用來進行顧客句子語義分析,進而得知該顧客句子的意圖(Intent)和斷詞結果:關鍵字(Entity),並算出課這兩者的接近度(Scrore),以我們這Case, 顧客的意圖只有一種:詢問各家電信公司的資費方案,而要知道是哪家電信哪隻iphone的方案,要從顧客句子去找出接近的關鍵字(Entity),並把結果回傳給客服機器人WebAPI,去KM裡找尋對應的回覆。</p> </blockquote> <p><strong><font size="3">KM</font></strong></p> <blockquote> <p>這部分可能是根據Luis傳回的Entity和Intent建立對應的句子知識庫。</p> </blockquote> <p> </p> <p>架構圖中的KM部分是比較Domain依賴,實作會用判斷式簡單實作在WebAPI裡。接著我們會分以下文章來說明這幾個部分的建置。</p> <p><strong><font size="4">一.  LUIS.ai </font> </strong></p> <p><font size="3">1. 前置規劃</font></p> <p>規劃前先了解以下名詞:</p> <p><strong>Utterence</strong> :客戶輸入的語句。例:</p> <blockquote> <p><font color="#0000ff">我想知道台哥大的Iphone7資費方案</font></p> </blockquote> <p><strong>Intent</strong>:客戶的意圖。例:</p> <blockquote> <p><font color="#0000ff">詢問電信公司資費</font></p> </blockquote> <p><strong>Entity</strong>: 斷詞分析出來的關鍵字。客戶輸入的語句裡, 有哪些符合我們預建的關鍵字(Entity),這邊Entity我翻成關鍵字,覺得比實體貼切一點。例:</p> <blockquote> <p><font color="#0000ff">台哥大、Iphone7</font></p> </blockquote> <p>這幾個元素的關係如下:</p> <p><a href="https://lh3.googleusercontent.com/-ky1XKyHr96I/WNuVrrFAm0I/AAAAAAAAEVE/EFREasZlWMw/s1600-h/image%25255B41%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-Ktkvn2dHqgw/WNuVsIj0D3I/AAAAAAAAEVI/or99oRNzp_0/image_thumb%25255B23%25255D.png?imgmax=800" width="516" height="312" /></a></p> <p> </p> <p>因此會有以下訓練資料要輸入</p> <p><a href="https://lh3.googleusercontent.com/-zb3MmUp2Tro/WNuVslX163I/AAAAAAAAEVM/cNFOCrrCN9o/s1600-h/image%25255B23%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/--6KwPeNRWYs/WNuVtV1oj2I/AAAAAAAAEVQ/naiRZDHHQ8c/image_thumb%25255B13%25255D.png?imgmax=800" width="504" height="468" /></a></p> <p><font size="3">2. 在</font><a href="https://www.luis.ai/home/index"><font size="3">LUIS官網</font></a><font size="3">建立帳號</font></p> <p>a. 利用MSN帳號登入,最初需要設定幾分鐘,如果太久都還沒出來的話,可按F5 Refresh <br /><a href="https://lh3.googleusercontent.com/-k3Phc5oQpF0/WNuVt4AbBLI/AAAAAAAAEVU/KjfQ-GzCxtY/s1600-h/image_thumb4%25255B2%25255D.png"><img title="image_thumb4" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb4" src="https://lh3.googleusercontent.com/-oaBaT4naaOg/WNuVuBPeHlI/AAAAAAAAEVY/RsNB8DDnukM/image_thumb4_thumb.png?imgmax=800" width="476" height="132" /></a></p> <p>b. 填入基本資料,然後繼續 <br /><a href="https://lh3.googleusercontent.com/-3drS0a14BSM/WNuVumEmVLI/AAAAAAAAEVc/JXpARZ3rnhc/s1600-h/image_thumb3%25255B2%25255D.png"><img title="image_thumb3" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb3" src="https://lh3.googleusercontent.com/-ywVZU9Y_HTY/WNuVvB_5iMI/AAAAAAAAEVg/r3vFFLwNm8A/image_thumb3_thumb.png?imgmax=800" width="477" height="191" /></a></p> <p>c. 成功後會出現Tutorial, 大約是建立一個Cognitive的步驟, 您可以不斷按NEXT查看</p> <blockquote> <p>1. Crete “Scheduler” APP </p> <p>3. Define app intents </p> <p>4. Add utterrance for intents </p> <p>2. Add entities </p> <p>5. Label entities in uttereances </p> <p>X Add prebuild entities </p> <p>6. Train and test </p> <p>7. Publis app </p> <p>8. All done! </p> </blockquote> <p>上面的數字是我們接下來建立順序,Add prebuild entities 這預設的Entity在我們Case不能匯入,因為像iphone 7的7這數字很容易被當成獨立數字而被先判定為Entity,這是中文語意分析的一些問題,舉例說:陳水扁人在高雄,<font color="#0000ff">扁人</font>可能就不是預期要的詞了。</p> <p>過來就要設定我們的機器人了。</p> <p><font size="3">3. 設定機器人 APP</font></p> <p>a. 首先點New App</p> <p><a href="https://lh3.googleusercontent.com/-zPk65yd4xoE/WNuVvfEHfFI/AAAAAAAAEVk/QyOSYdmB9mo/s1600-h/image_thumb6%25255B3%25255D.png"><img title="image_thumb6" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb6" src="https://lh3.googleusercontent.com/-TUOBqd9IXnc/WNuVvxuacHI/AAAAAAAAEVo/PtiELsXa_Fk/image_thumb6_thumb%25255B1%25255D.png?imgmax=800" width="410" height="169" /></a></p> <p>填入相關資料Name/Cultur…,因為是辨識中文,<strong>Cuture</strong>要選<strong>Chinese</strong>, 完成後按<strong>Create</strong></p> <p><a href="https://lh3.googleusercontent.com/-gs0FuQ8XY8o/WNuVwYq-wnI/AAAAAAAAEVs/cEc6YhYN1GE/s1600-h/image_thumb11%25255B2%25255D.png"><img title="image_thumb11" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb11" src="https://lh3.googleusercontent.com/-Q4B9JNsjOx0/WNuVw5B6EkI/AAAAAAAAEVw/U19imUxq-HI/image_thumb11_thumb.png?imgmax=800" width="405" height="336" /></a></p> <p>b. 建立2個Entity</p> <blockquote> <p>   Entity Name:電信公司 <br />   Type是Simple <br /> </p> <p>   Entity Name:手機類型 <br />   Type是Hierarchical</p> <p>    Child:IPHONE7/IPHONE6S/IPHONE6</p> </blockquote> <p><a href="https://lh3.googleusercontent.com/-bljqeWDoAk4/WNuVxNp66UI/AAAAAAAAEV0/Yo5xXFDE738/s1600-h/image_thumb31%25255B2%25255D.png"><img title="image_thumb31" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb31" src="https://lh3.googleusercontent.com/-m_d1vZXy5vI/WNuVxlBJmJI/AAAAAAAAEV4/SgG1hU40E14/image_thumb31_thumb.png?imgmax=800" width="475" height="257" /></a></p> <p><a href="https://lh3.googleusercontent.com/-qoebDeXbxQM/WNuVx84dPMI/AAAAAAAAEV8/YzWEsgrIOfo/s1600-h/image%25255B45%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-Fjd2B4APFmE/WNuVyfgTocI/AAAAAAAAEWA/xxFUkLitVtY/image_thumb%25255B25%25255D.png?imgmax=800" width="478" height="496" /></a></p> <p>完成後就有兩個 Entity:</p> <p><a href="https://lh3.googleusercontent.com/-VE5UyEHOn6w/WNuVy-5XMSI/AAAAAAAAEWE/8ZRpifiMNaM/s1600-h/image%25255B49%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-sUfWQI31QiA/WNuVzX3ORlI/AAAAAAAAEWI/e9I0AdY0BmY/image_thumb%25255B27%25255D.png?imgmax=800" width="517" height="233" /></a></p> <p>C. 建立一個Intent</p> <p><a href="https://lh3.googleusercontent.com/-LLSbWL-wcVc/WN20nK3zLQI/AAAAAAAAEZw/C0XcoUuOMuk/s1600-h/image_thumb26%25255B1%25255D.png"><img title="image_thumb26" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image_thumb26" src="https://lh3.googleusercontent.com/-yn5eukeWhmk/WN20oa9GjwI/AAAAAAAAEZ0/aY9ywt9MLBg/image_thumb26_thumb.png?imgmax=800" width="556" height="215" /></a></p> <p>點Add Intent新增一intent, 輸入名稱:詢問電信公司資費 ,點Save。</p> <p><a href="https://lh3.googleusercontent.com/-gAUiUnsM6HI/WN20pSxRStI/AAAAAAAAEZ4/ENXfzh7dGps/s1600-h/image_thumb23%25255B2%25255D.png"><img title="image_thumb23" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image_thumb23" src="https://lh3.googleusercontent.com/-vFZxoO-PQiQ/WN20qbxrtcI/AAAAAAAAEZ8/Vnp5kAUlZow/image_thumb23_thumb.png?imgmax=800" width="557" height="282" /></a></p> <p>d. 進入電信公司資費 Intents,輸入一條Utterence ,像是:</p> <blockquote> <p><font color="#0000ff">告訴我台哥大的Iphone7方案</font></p> </blockquote> <p><a href="https://lh3.googleusercontent.com/-iV7fGKQnblg/WNuV1iz4S-I/AAAAAAAAEWc/RPrQUUc7rYs/s1600-h/image_thumb25%25255B4%25255D.png"><img title="image_thumb25" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb25" src="https://lh3.googleusercontent.com/-IJIUmDrDd6Q/WNuV2VfY5JI/AAAAAAAAEWg/cxs9CldXCUM/image_thumb25_thumb%25255B2%25255D.png?imgmax=800" width="477" height="248" /></a></p> <p>e. 連接詞到Entity。點在台灣大的詞上,會有[]的符號,你可以用mark方式選取後,點右鍵選對應Entity 。 <br /><a href="https://lh3.googleusercontent.com/-T84J3lFgGhQ/WNuV259NbDI/AAAAAAAAEWk/EiYPxG6ZmNU/s1600-h/image%25255B53%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-k1dckr4JF8w/WNuV3jH4GoI/AAAAAAAAEWo/Y8qap8ICb6I/image_thumb%25255B29%25255D.png?imgmax=800" width="563" height="260" /></a></p> <p>以下是原有句子:</p> <p><a href="https://lh3.googleusercontent.com/-LhELEZMGMLE/WNuV4DNeMYI/AAAAAAAAEWs/sI8ayODmN_U/s1600-h/image%25255B61%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-RJ3BFlWnYzA/WNuV4oSEc2I/AAAAAAAAEWw/JJFEV-N2jUM/image_thumb%25255B33%25255D.png?imgmax=800" width="592" height="171" /></a></p> <p>連接的Entity的如下:</p> <p><a href="https://lh3.googleusercontent.com/-NeY3iMkQFok/WNuV5Ntf4GI/AAAAAAAAEW0/xc5QZdLPmNw/s1600-h/image%25255B57%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-CxWLu1nVhEQ/WNuV5ja-4OI/AAAAAAAAEW4/7fJE3tJS_2U/image_thumb%25255B31%25255D.png?imgmax=800" width="598" height="175" /></a></p> <p><font size="3">4. Training & Test</font></p> <p>在測試之前要先點Train Application,這樣才會訓練成一個Model。</p> <p><a href="https://lh3.googleusercontent.com/-f3roWNe9kt4/WNuV6DCvEyI/AAAAAAAAEW8/i8sbTrrSXQo/s1600-h/image%25255B65%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-sqAs7Ki5UqM/WNuV6g3RTjI/AAAAAAAAEXA/ac5bq8gAguk/image_thumb%25255B35%25255D.png?imgmax=800" width="586" height="314" /></a></p> <p>過來就可輸入一句話看一下結果,底下有找到兩個<strong>Entity</strong>,括號後是<strong>Score</strong>,和一個<strong>Intent。</strong></p> <p><a href="https://lh3.googleusercontent.com/-n9gMf3NOHXQ/WNuV61_cmZI/AAAAAAAAEXE/pPdkaKUS7hI/s1600-h/image%25255B73%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-3A3Lz6GaI6c/WNuV7VP5yKI/AAAAAAAAEXI/jGtPmKH7nmM/image_thumb%25255B39%25255D.png?imgmax=800" width="600" height="250" /></a></p> <p><font size="3">5. 發佈(Publish)</font></p> <p>在Publish前要先點Training。<font size="3"></font></p> <p><a href="https://lh3.googleusercontent.com/-7bMzl4y8HzM/WNuV71xLjhI/AAAAAAAAEXM/kw624UJQ1Fo/s1600-h/image_thumb41%25255B3%25255D.png"><img title="image_thumb41" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb41" src="https://lh3.googleusercontent.com/-stjdykG-oBQ/WNuV8UADTII/AAAAAAAAEXQ/PxHi3LUC_vQ/image_thumb41_thumb%25255B1%25255D.png?imgmax=800" width="453" height="296" /></a></p> <p>後面的機器人Web API會呼叫我們製作的LUIS Service,需要用到以下資料:</p> <p>App ID:</p> <p><a href="https://lh3.googleusercontent.com/-NV9bN9MhTzs/WNuV81qTXTI/AAAAAAAAEXU/uPE-d1m1gb4/s1600-h/image_thumb43%25255B3%25255D.png"><img title="image_thumb43" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb43" src="https://lh3.googleusercontent.com/-miESVlGk2cQ/WNuV9fS3KoI/AAAAAAAAEXY/-vyVJzvzxG8/image_thumb43_thumb%25255B1%25255D.png?imgmax=800" width="459" height="216" /></a></p> <p>Programmantic API Key –> 呼叫網址裡的Subscribe-Key的值。</p> <p><a href="https://lh3.googleusercontent.com/-SnHWPzB9WRs/WNuV98gnC-I/AAAAAAAAEXc/Gw9nQhll1Pg/s1600-h/image_thumb45%25255B3%25255D.png"><img title="image_thumb45" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb45" src="https://lh3.googleusercontent.com/-8iDn9qAKs88/WNuV-QlmuPI/AAAAAAAAEXg/1h2jiG52KFg/image_thumb45_thumb%25255B1%25255D.png?imgmax=800" width="460" height="238" /></a></p> <p><a href="https://lh3.googleusercontent.com/-5xmMPYbbge8/WNuV-2KDh1I/AAAAAAAAEXk/-M4P8zx_R60/s1600-h/image_thumb47%25255B3%25255D.png"><img title="image_thumb47" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb47" src="https://lh3.googleusercontent.com/-IYE-xB8SmHk/WNuV_TF8LKI/AAAAAAAAEXo/Sp6QIedples/image_thumb47_thumb%25255B1%25255D.png?imgmax=800" width="512" height="186" /></a></p> <p><font size="3">6. 測試API網址</font></p> <p>Publish後會出現Endpoint url,這個就是我們機器人WebAPI要連接URL,裡面的subscription-key跟前面的一樣, q= 後面就是客戶發的句子。</p> <p><a href="https://lh3.googleusercontent.com/-vPs0OQtj9uU/WNuV_goEYOI/AAAAAAAAEXs/wD3FdQOWgrw/s1600-h/image%25255B77%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-2eg105hAS40/WNuWASrj5VI/AAAAAAAAEXw/UHSFo7-Z00g/image_thumb%25255B41%25255D.png?imgmax=800" width="523" height="231" /></a></p> <p>我們在q= 後加入要解析的句子, 貼到瀏覽器上執行(因為會回傳JSON, 所以要用EDGE或可以解析的瀏覽器)。</p> <p><a href="https://lh3.googleusercontent.com/-zPq90lws390/WNuWA1_o1XI/AAAAAAAAEX0/NsVQz27cFm8/s1600-h/image%25255B81%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-ycVr3obR07w/WNuWBdIvDaI/AAAAAAAAEX4/eFiyyJp521M/image_thumb%25255B43%25255D.png?imgmax=800" width="456" height="47" /></a></p> <p>就會得到以下JSON結果,包含Intent和Score,以及兩個entity:</p> <p><a href="https://lh3.googleusercontent.com/-juwMsFQ8GmU/WNwFYRtPYZI/AAAAAAAAEYU/5h0hNf_vmwk/s1600-h/image%25255B92%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdLQu4dtY-SahTkrmd6AVMjT2QrZc3o8ArnHWueDce-geyLeni1tHIAOupxH2a18HNriydgpVQjDLuICvhdtrpL4EUkLKaV3DrsrESB8HFQNJSiAOY5qk8nP4bUZrGbRQsInNflEjyVa4/?imgmax=800" width="473" height="553" /></a></p> <p>到這邊LUIS差不多完成了,接著要開發用Bot Framework機器人WebAPI。</p> <p><font size="4"><strong>轉換門</strong></font></p> <p><font size="4"><a href="http://trufflepenne.blogspot.tw/2017/03/2-bot-framework.html">>>>>打造客服聊天機器人(2)-Bot Framework篇</a></font></p> <p><font size="4"></font></p> <p><strong><font size="4">參考資訊:</font></strong></p> <p><a href="https://medium.com/dualcores-studio/%E8%A8%AD%E8%A8%88%E7%AD%86%E8%A8%98-%E6%B7%BA%E8%AB%87%E8%81%8A%E5%A4%A9%E4%BB%8B%E9%9D%A2%E8%88%87%E4%BA%BA%E6%A9%9F%E4%BA%92%E5%8B%95%E8%A8%AD%E8%A8%88-c21fe6ac8981#.fh8xtg438">淺談聊天介面與人機互動設計</a></p> <p><a href="http://stackoverflow.com/questions/39375197/is-possible-to-make-microsoft-luis-auto-trained-with-api">LUIS API for training</a></p> <p><a href="http://www.c-sharpcorner.com/article/build-travel-agent-application-using-luis-api-in-microsoft-cognitive-services2/">Build Travel Agent Application Using LUIS API In Microsoft Cognitive Services - Part Two</a></p> <p><a href="https://docs.botframework.com/en-us/node/builder/guides/understanding-natural-language/">Understanding Natural Language</a></p> <p><a href="https://dotblogs.com.tw/maduka/2016/06/24/113852">LUIS教學-小白</a></p> <p>董大偉老師:</p> <p><a title="http://studyhost.blogspot.tw/2016/04/bot-framework-1.html" href="http://studyhost.blogspot.tw/2016/04/bot-framework-1.html">http://studyhost.blogspot.tw/2016/04/bot-framework-1.html</a></p> <p><a title="http://studyhost.blogspot.tw/2016/08/bot-framework-4-luis.html" href="http://studyhost.blogspot.tw/2016/08/bot-framework-4-luis.html">http://studyhost.blogspot.tw/2016/08/bot-framework-4-luis.html</a></p> <p><a title="http://studyhost.blogspot.tw/2016/08/bot-framework-5-net-sdkluis.html" href="http://studyhost.blogspot.tw/2016/08/bot-framework-5-net-sdkluis.html">http://studyhost.blogspot.tw/2016/08/bot-framework-5-net-sdkluis.html</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-85381167951145508852017-03-14T10:00:00.000-07:002017-04-06T05:55:54.355-07:00Azure上設定CentOS linux的virtual machineAzure 除了可以建立自家OS的VM,也同時支援另外一個很大族群:Linux,以下將介紹在Azure上建立一個CentOS的VM,並連接到該VM測試。<br />
<br />
<a name='more'></a><h3>
安裝步驟</h3>
<ol>
<li>登入Azure Portal後,選<strong>VIRTUAL MACHINE</strong>,並點選右方<strong>CREATE A VIRTUAL MACHINE <br /><a href="http://lh6.ggpht.com/-umlhYdYF7M8/UWGPYkTajOI/AAAAAAAABdw/V81RoYkhYy8/s1600-h/image21.png"><img alt="image" border="0" src="http://lh4.ggpht.com/-GZGpoc28pG0/UWGPZUHtBpI/AAAAAAAABd4/rPjfTP8kPVQ/image_thumb12.png?imgmax=800" height="397" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="544" /></a></strong> </li>
<li>選Virtual Machine<br /><a href="http://lh4.ggpht.com/-iTZa3UXMwqA/UWGPZ65zOeI/AAAAAAAABeA/_DRvwpJMqxg/s1600-h/image22.png"><img alt="image" border="0" src="http://lh4.ggpht.com/-0TP9d9D4EBA/UWGPausweGI/AAAAAAAABeI/fhay7sz1w1o/image_thumb13.png?imgmax=800" height="362" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="538" /></a> </li>
<li>選擇Operation system, 這裡選CentOS 6.2, 選完好後按--> <br /><a href="http://lh3.ggpht.com/-wz2V_bwCXoo/UWGPbTDAlZI/AAAAAAAABeQ/VyDktOb1czQ/s1600-h/image3.png"><img alt="image" border="0" src="http://lh6.ggpht.com/-HdGD-lu8BaI/UWGPcPFooxI/AAAAAAAABeY/MQNbu7D_ias/image_thumb1.png?imgmax=800" height="403" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="524" /></a> </li>
<li>這邊要<a href="http://www.windowsazure.com/en-us/manage/linux/how-to-guides/ssh-into-linux/">建立SSLKEY</a> <br />請<a href="http://msysgit.github.com/">下載MySysGit</a> ,下載後進行安裝 <br /><a href="http://lh6.ggpht.com/-d2DtzXBx6ag/UWGPc-0d27I/AAAAAAAABeg/xRe70Nl-V10/s1600-h/image54.png"><img alt="image" border="0" src="http://lh6.ggpht.com/-IX7fN3M_fvw/UWGPdTFP1BI/AAAAAAAABeo/7NAJRp6kqyU/image_thumb29.png?imgmax=800" height="284" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="371" /></a> <br />執行 <br />C:\Program Files (x86)\Git\Git Bash.vbs <br />再執行 <br />openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout myPrivateKey.key -out myCert.pem <br />會要你輸入一堆資訊,輸入完打ls,就可以看到你的Key已經產生了 <br /><a href="http://lh5.ggpht.com/-u8XHy7d8vvc/UWGPeBD_wAI/AAAAAAAABew/khK00z8cK7A/s1600-h/image58.png"><img alt="image" border="0" src="http://lh6.ggpht.com/-wBj6gsY0qs0/UWGPesnW0OI/AAAAAAAABe4/RDAWwl5vt1A/image_thumb31.png?imgmax=800" height="68" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="411" /></a> <br />接者打以下把key 匯出到d: <br />cp myCert.pem d:\myCert.pem <br />cp myPrivateKey.key d:\myPrivatekey.key </li>
<li>輸入virtual machine name,帳號密碼,Certificate選剛剛建立的myCert.pem <br /> <br /><a href="http://lh5.ggpht.com/-_bmKWTcKGBY/UWGPftvtMRI/AAAAAAAABfA/VA8CFeYAFtc/s1600-h/image7.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUYOjqhyskTikQ4QVL2v77Iwkv0vBC2Jj2q8um6tUKVKGNR2eQo6bfSZkVB5Bc-U5lr0Nn820lD1x5a6Igjg9NXF1u_JRO1DIyAR42VQ9hBE8kCDZjLXR8SvOyy1sT-WNlCgPDEqYndjw/?imgmax=800" height="463" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="392" /></a> </li>
<li>選第一項Standalone,第二選項是做HA時,第二台VM要選的,接著輸入DNS NAME,還有你的Storage accout,要放的位置。 <br /><a href="http://lh4.ggpht.com/-qnJuYwcDfwE/UWGPhCuy0_I/AAAAAAAABfQ/ULzeeqtZCso/s1600-h/image11.png"><img alt="image" border="0" src="http://lh3.ggpht.com/-vvZpqp_UYM4/UWGPh9kmViI/AAAAAAAABfY/zfs_SgqEqUc/image_thumb5.png?imgmax=800" height="340" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="433" /></a> </li>
<li>這裡是有關高可靠性(HA)的設定,HA簡單說就是兩個以上的VM連在一起,當一個VM有問題,另一個可以接手,另外還可以做成Load balance,設定請參考<a href="http://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/">這裡</a>,這邊就先設為None,點打勾complete圖示。 <br /><a href="http://lh5.ggpht.com/-KhXDSRyaaog/UWGPikhtoQI/AAAAAAAABfg/-zyY-4u7tvw/s1600-h/image19.png"><img alt="image" border="0" src="http://lh3.ggpht.com/-OhNm17WBrFU/UWGPjDMRcGI/AAAAAAAABfo/hpNz20FESYE/image_thumb9.png?imgmax=800" height="261" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="418" /></a> </li>
<li>Azure就會開始進行Provision,準備你的VM <br /><a href="http://lh3.ggpht.com/-QFV9y9aiaEs/UWGPjj7n9CI/AAAAAAAABfw/D_wxAiooSzA/s1600-h/image23.png"><img alt="image" border="0" src="http://lh6.ggpht.com/-oqprmiZsf9Q/UWGPkCtAFqI/AAAAAAAABf4/sXELr9V-69A/image_thumb11.png?imgmax=800" height="186" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="460" /></a> </li>
<li>Provisioning中,把你的<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">putty</a> 或<a href="http://www.colorado.edu/its/security/SSHSecureShellClient.exe">ssh</a> 準備好,因為VM底下的COnnect是灰色,他只會把遠端桌面叫起來,這只是用Windows VM。 </li>
<li>看到我們的VM的Status是Running表示VM已已經建好。 <br /><a href="http://lh5.ggpht.com/-hUi8Af1onhc/UWGPkmjBBNI/AAAAAAAABgA/j0Py3xriILc/s1600-h/image27.png"><img alt="image" border="0" src="http://lh5.ggpht.com/-RUUCa8nOi4g/UWGPlI0bdUI/AAAAAAAABgI/RdH7yDOeODM/image_thumb13%25255B1%25255D.png?imgmax=800" height="244" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="473" /></a> <br />如果Status是Stop,要按底下的run啟動,會有一個括號Provisioning,過一陣子就會變成底下Runing <br /><a href="http://lh5.ggpht.com/-qUnnRZ05ZK0/UWGPl2ckAEI/AAAAAAAABgQ/ve5SRJU5bS8/s1600-h/image30.png"><img alt="image" border="0" src="http://lh3.ggpht.com/-O1k6sTzmipU/UWGPmS-wkwI/AAAAAAAABgY/_z_iNuK54zQ/image_thumb14.png?imgmax=800" height="31" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /></a> <br />點下Run,會進行Updating <br /><a href="http://lh3.ggpht.com/-_PlxVNxcW4k/UWGPmz2exII/AAAAAAAABgg/SqUJzsfSr5k/s1600-h/image42.png"><img alt="image" border="0" src="http://lh5.ggpht.com/-sOCk9e2geOI/UWGPnt0JmNI/AAAAAAAABgo/GvUPrpLkMEA/image_thumb20.png?imgmax=800" height="218" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="456" /></a> <br />跑完後會變Running <br /><a href="http://lh5.ggpht.com/-SbqFyWrAnoc/UWGPq8AQRyI/AAAAAAAABgw/0scD6bxPwhA/s1600-h/image43.png"><img alt="image" border="0" src="http://lh3.ggpht.com/-9VR3qyOmG3M/UWGPrnezC6I/AAAAAAAABg4/uZE4cupcm8Q/image_thumb21.png?imgmax=800" height="217" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="464" /></a> </li>
<li> 到這邊已大功告成,這時我們打開Putty連到雲端的Suse,位置就是剛剛輸入的DNS name: <strong>testSuse.cloudapp.net </strong></li>
</ol>
<div>
</div>
<ol></ol>
<strong> </strong><br />
<h3>
<strong>注意事項</strong></h3>
<strong> </strong> <br />
如果你只是測試,測試完建議關閉這VM,因為關閉不會扣時數 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-28814557117617924372017-03-04T06:39:00.000-08:002017-03-26T09:49:55.286-07:00軟體架構設計-以客服系統為例<span style="font-size: large;"><strong>軟體開發之路 - 新春網聚</strong></span><br />
日期: 2017/3/4 星期六 下午 02:00 ~ 05:00<br />
活動時間大約三個鐘頭左右,像粉絲見面會一樣,活動目的讓各路軟體開發人才交流、分享軟體開發經驗。<br />
<a name='more'></a><br />首先會由Gelis開場: <br />主題 2017 軟體開發之路 – 新春網聚 [見面會] <br />一、軟體開發甘苦談 <br />二、軟體開發之路該怎麼走?技術怎麼選擇? <br />三、各路高手交流軟體開發經驗 與 分享<br />
另外,同場加映,由 Johnson 主講 <br />主題:客服系統的軟體架構分享 <br />一、 軟體架構要關注的事 <br />二、幾種架構介紹 <br />三、設計架構的步驟 <br />四、一個實例<br />
地點:台北科大育成中心 <br />地址:106臺北市大安區新生南路一段1號(光華館3樓305室) <br />地圖如下: <br /><a href="http://i.imgur.com/27zahpV.jpg"><img alt="" src="http://i.imgur.com/27zahpV.jpg" height="253" width="300" /></a><br />
感謝 台北科大育成中心 與 聖森股份有限公司 提供會議室場地 <br /><a href="http://incu.ntut.edu.tw/files/15-1036-4233,c929-1.php?Lang=zh-tw"><img alt="" src="http://dotblogger.azurewebsites.net/wp-content/uploads/2017/01/Image_c7e9b5e-300x149.jpg" height="149" width="300" /></a><br />
會議中小弟分享了簡報網址在此<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/rq3EbA8zhyOUHb" style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; border-right: #ccc 1px solid; border-top: #ccc 1px solid; margin-bottom: 5px; max-width: 100%;" width="595"> </iframe> <br />
<div style="margin-bottom: 5px;">
<strong><a href="https://www.slideshare.net/johnsongau/ss-72840332" target="_blank" title="客服系統的軟體架設計分享">客服系統的軟體架設計分享</a> </strong>from <strong><a href="https://www.slideshare.net/johnsongau" target="_blank">Johnson Gau</a></strong> </div>
<br />
其他參考<br />
OOAD<br />
<a href="https://dotblogs.com.tw/gelis/2012/05/16/72218" title="https://dotblogs.com.tw/gelis/2012/05/16/72218">https://dotblogs.com.tw/gelis/2012/05/16/72218</a><br />
<a href="https://dotblogs.com.tw/gelis/2012/05/20/72276" title="https://dotblogs.com.tw/gelis/2012/05/20/72276">https://dotblogs.com.tw/gelis/2012/05/20/72276</a><br />
3-layer<br />
<a href="https://dotblogs.com.tw/clark/2016/03/14/075524" title="https://dotblogs.com.tw/clark/2016/03/14/075524">https://dotblogs.com.tw/clark/2016/03/14/075524</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-82094186346725967242017-02-23T23:08:00.001-08:002017-04-18T08:18:55.049-07:00解決無法參考不同版本EntityFramework<h3>
Problem</h3>
我的專案目標是.net 4.5,因此EntityFrameword 5也是使用4.5版,若使用編譯目標使用.net framework 4.0版,Compile後就會收到以下錯誤:<br />
<a href="https://www.blogger.com/null" name="more"></a> <br />
<a name='more'></a><span style="color: blue;">錯誤 3 '…\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll' 和 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll' 兩者中都有型別 'System.ComponentModel.DataAnnotations.Schema.ColumnAttribute' …….\Entity\UserContext.cs</span> <br />
可是這是一個奇異現象:<br />
因原本的專案是參考EntityFrameword 5的.net 4.5版本, 版本號理應是5.0.0.0 ,但怎會 <br /><a href="https://lh3.googleusercontent.com/-5SQdTJS928k/WK_b7xvSDbI/AAAAAAAAEFo/kQMf9c3I96c/s1600-h/image%25255B7%25255D.png"><img alt="image" border="0" height="199" src="https://lh3.googleusercontent.com/-rCeRCJbjFkk/WK_b8XLLIQI/AAAAAAAAEFs/VpBk16WqzPg/image_thumb%25255B3%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="426" /></a><br />
<h3>
Why</h3>
後來回想最近系統有作何更新,是有加裝了.net 4.6,猜想可能這導致專案參考EntityFramework 5 的版本變成4.4.0.0 (或許是兩版一起加, 刪除又加入造成錯亂)。 <br /><a href="https://lh3.googleusercontent.com/-5tk8FI6S0zA/WK_b80vPyeI/AAAAAAAAEFw/rvkGD_kTq70/s1600-h/image%25255B3%25255D.png"><img alt="image" border="0" height="177" src="https://lh3.googleusercontent.com/-d8xsDkM9l04/WK_b9mnSyNI/AAAAAAAAEF0/QbXDYpfwUbY/image_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="428" /></a><br />
這時直覺想,把4.4版刪除加上5.0應該就沒問題了,但是加入5.0後,屬性仍會變成4.4參考,實在非常奇怪。<br />
<h3>
Solution</h3>
打開我們的.proj專案檔,發現有4.0和4.5版的TAG<br />
<a href="https://lh3.googleusercontent.com/-uq4ifeOlTjM/WK_b9440MQI/AAAAAAAAEF4/HM6PN2eXWHA/s1600-h/image%25255B11%25255D.png"><img alt="image" border="0" height="117" src="https://lh3.googleusercontent.com/-l_Ncu2jsKjE/WK_b-bwg-7I/AAAAAAAAEF8/fQIQ3XDnjK8/image_thumb%25255B5%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="593" /></a><br />
猜想可能之前某個事件,導致4.0版的TAG有重複存在xml裡,於是執行以下解決步驟:<br />
1. 把以上.proj專案檔裡的Entityframwork字樣的TAG都刪除,然後存檔<br />
2. 再次加入4.5版的framework 5 參考<br />
竟然就正常了,終於解決了這奇怪的問題。<br />
<h3>
注意事項</h3>
<span style="color: #c0504d;"><strong>執行前請先將Proj檔存檔,以免錯誤時可以Rollback。</strong></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-48415611163881318852017-01-25T02:55:00.000-08:002017-04-18T06:29:01.419-07:00壓測程式使用HttpWebRequest有時候我們需要自行寫一支Web的壓測程式或是點擊率程式(誤),那需要用到甚麼物件來達到這目標呢?候選就是<span style="color: blue;">HttpWebRequest</span>。 <br />
<a name='more'></a><br />
<strong> </strong><br />
<h3>
<strong><strong>目標</strong></strong></h3>
<strong> </strong> <br />
可以輸入Request的URL,並設定次數,有必要時可選是否休息再送出,或是加入字串,最後算出費時 <br />
<a href="https://lh3.googleusercontent.com/-z5HMNoMQM4s/WNf-PSve_dI/AAAAAAAAETc/y0vKwG4mXQM/s1600-h/image%25255B25%25255D.png"><img alt="image" border="0" height="253" src="https://lh3.googleusercontent.com/-JOA18J25iqE/WNf-P3aLdHI/AAAAAAAAETg/yVokOIpz5vk/image_thumb%25255B13%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="558" /></a> <br />
<strong><span style="color: blue;">[名詞解釋]</span></strong> <br />
<ul>
<li><strong>Thread</strong> (執行緒)- 一段程式是在主執行緒執行,如果有分開執行程式要同時執行,這時就可另外建立一執行緒來執行,因UI更新通常有主執行緒在處理,將讀取資料使用另一執行緒去讀取,可避免畫面被凍結。 </li>
<li><strong>Asynchronous(同步)</strong> - 非同步很容易誤解非同是執行,這是完全相反意思,正確的意思是非連續執行,因此非同步呼叫會以另一執行緒去執行,執行完成後會呼叫一個完成程序,完成程序可能是將回傳的資料更新到畫面,或是彈跳完成訊息。 </li>
<li><strong>Synchronous(同步)</strong> – 舊式非同步的相反,意思是呼叫的程式和原執行緒是連續執行,也就是所呼叫的程式必須完成後才會執行後面的程式,因此如果有去呼叫一段讀資料程序,畫面會凍結到資料讀完為止。 </li>
<li><strong>Blocking(阻塞)</strong> - 一般指的是使用者介面被凍結無法回應,或是一段程式碼防止另一段程式碼執行,<code>MessageBox</code> 在 .NET, <code>ShowDialog()執行時,畫面要等到對話框結束才能繼續執行 </code></li>
<li><strong><span style="font-family: "tahoma";">Request</span>(要求)</strong> – request表示呼叫一個網址並帶有一些參數,瀏覽器尋訪一個網站也是用Request。 </li>
<li><strong><span style="font-family: "tahoma";">Response</span>(回應)</strong> - 便是request後所回應的資料,遠端Server會回應Request,回應內容可能是Html網頁,或是XML,或是JSON字串表示的物件(可以轉成.NET物件)。 <br /><strong> <h3>
</h3>
</strong></li>
</ul>
<strong> </strong><br />
<h3>
<strong>實作</strong></h3>
<strong> </strong> <br />
<br />
這邊是使用<strong>Synchronous呼叫</strong> <br />
首先先建立一個Request Method <br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
private void RequestSomePage()
{
string url = txtUrl.Text; //設定URL
if (chkAppendQuertString.Checked)
{
url += GetQueryString(); //加入字串
}
_req =(HttpWebRequest)HttpWebRequest.Create( url); //建立HttpWebRequest
_req.Date = DateTime.Now;
using (WebResponse wr = _req.GetResponse())
{
//在這裡對接收到的頁面內容進行處理
//這裡不做任何事
}
_req.Abort();
}
</pre>
</div>
<br />
這裡有個Method組時間當成參數 <br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
private string GetQueryString()
{
string ret;
DateTime nowDt = DateTime.Now;
ret = nowDt.Year.ToString() + nowDt.Month.ToString("00") + nowDt.Day.ToString("00")
+ nowDt.Hour.ToString("00") + nowDt.Minute.ToString("00") + nowDt.Second.ToString("00") +
nowDt.Millisecond.ToString();
return ret= "?a=" +ret;
}
</pre>
</div>
<br />
最後按下按鈕呼叫RequestSomePage
<br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
private void button1_Click(object sender, EventArgs e)
{
var watch = Stopwatch.StartNew();//計數用
int maxCount; //尋訪最大數
maxCount = int.Parse(txtCounts.Text);
button1.Enabled = false;//不可再重複送出
for (int i = 0; i < maxCount; i++)
{
RequestSomePage();
if (chkSleep.Checked)
System.Threading.Thread.Sleep(8000); //休息8秒
}
MessageBox.Show("Finished");
button1.Enabled = true;
watch.Stop();//Stop計數
var elapsedMs = watch.ElapsedMilliseconds;
TimeSpan ts = watch.Elapsed;
textBox1.Text = ts.ToString("mm\\:ss\\.ff");//顯示費時
}
</pre>
</div>
<br />
<h3>
測試</h3>
我們加入一個空白ASP.NET專案,新增一個Web表單,命名為Default.aspx <br />
<a href="https://lh3.googleusercontent.com/-IU9-8vFZ4S0/WNf-QD5f4CI/AAAAAAAAETk/FZ7mgZhxdxY/s1600-h/image%25255B3%25255D.png"><img alt="image" border="0" height="341" src="https://lh3.googleusercontent.com/-ZxIWiONHG-Q/WNf-QkhqWaI/AAAAAAAAETo/41-dfz5yA0E/image_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="523" /></a> <br />
拉一個Label,前面寫著Counts: <br />
<span style="color: blue;"><body> <br /> <form id="form1" runat="server"> <br /> <div> <br /> <br /> Counts:&nbsp; <br /> <asp:Label ID="lblCounts" runat="server" Text="0"></asp:Label> <br /> <br /> </div> <br /> </form> <br /></body></span> <br />
並在增加一個Global.aspx <br />
<a href="https://lh3.googleusercontent.com/-HIPk06R9f6I/WNf-RKXjY7I/AAAAAAAAETs/VQh1x_I21rw/s1600-h/image%25255B8%25255D.png"><img alt="image" border="0" height="386" src="https://lh3.googleusercontent.com/-SuqsCUDMA4o/WNf-RqV7WHI/AAAAAAAAETw/OG-MlShlf3A/image_thumb%25255B4%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="503" /></a> <br />
並在Application_Start加入Application變數PageRequestCount,並設定為0 <br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
protected void Application_Start(object sender, EventArgs e)
{
Application["PageRequestCount"] = 0;
}
</pre>
</div>
<br />
完成後記得要建置專案 <br />
接著到控制台-新增移除程式,確定IIS相關設定已打開 <br />
<a href="https://lh3.googleusercontent.com/-wJhEOgOZuTc/WNf-RycHtzI/AAAAAAAAET0/VRht733pz4s/s1600-h/image%25255B12%25255D.png"><img alt="image" border="0" height="369" src="https://lh3.googleusercontent.com/-J8vvAYi8Tkc/WNf-ScJdVuI/AAAAAAAAET4/-OCt3QnvvA0/image_thumb%25255B6%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="228" /></a> <br />
打開IIS管理員,將WebTest加入Default website <br />
<a href="https://lh3.googleusercontent.com/-jmtE0sukq7Q/WNf-SxSDgwI/AAAAAAAAET8/aXzAtHm6qrc/s1600-h/image%25255B16%25255D.png"><img alt="image" border="0" height="247" src="https://lh3.googleusercontent.com/-9HMdE_1do7Y/WNf-TY5Ur_I/AAAAAAAAEUA/oFHoJvZwEVQ/image_thumb%25255B8%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="332" /></a> <br />
<br />
打開Default.aspx2的Form_Load填入以下程式 <br />
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:452a05aa-2206-4454-9f00-ae1f81735fa1" style="display: inline; float: none; margin: 0px; padding: 0px;">
<pre class="brush: c#;">
protected void Page_Load(object sender, EventArgs e)
{
Application.Lock();
Application["PageRequestCount"] = (int)Application["PageRequestCount"]) + 1;
lblCounts.Text = Application["PageRequestCount"].ToString();
Application.UnLock();
}
</pre>
</div>
<br />
建置完成後,在瀏覽器輸入<a href="http://localhost/webtest/" title="http://localhost/webtest/">http://localhost/webtest/</a> <br />
不斷的refresh,counts會加1 <br />
<a href="https://lh3.googleusercontent.com/-a4tQgEJhfdM/WNf-Tm5RU5I/AAAAAAAAEUE/WYxuk31SaJ0/s1600-h/image%25255B20%25255D.png"><img alt="image" border="0" height="116" src="https://lh3.googleusercontent.com/-mqsHCR_FyNs/WNf-T1tfXpI/AAAAAAAAEUI/sdoM-EkT0hs/image_thumb%25255B10%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="280" /></a> <br />
這時可執行我們的壓測程式 <br />
<a href="https://lh3.googleusercontent.com/-ZuPwk0MRyOw/WNf-UvHNSpI/AAAAAAAAEUM/_ls9bpBZ3fc/s1600-h/image%25255B32%25255D.png"><img alt="image" border="0" height="219" src="https://lh3.googleusercontent.com/-QYNxwiE7NzI/WNf-VCmJH2I/AAAAAAAAEUQ/K8uQXWEIabw/image_thumb%25255B16%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="490" /></a> <br />
refresh一下網頁,得到 233+1次,的確呼叫了233次 <br />
<a href="https://lh3.googleusercontent.com/-UTz9qdQ6c-k/WNf-VgROC8I/AAAAAAAAEUU/Q_8R9FakFFQ/s1600-h/image%25255B28%25255D.png"><img alt="image" border="0" height="84" src="https://lh3.googleusercontent.com/-B2yfrwaGUkc/WNf-Vwvs8WI/AAAAAAAAEUY/0RjJ3kU5RTI/image_thumb%25255B14%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /></a> <br />
<strong></strong><br />
<h3>
<strong>GitHub程式碼:</strong> </h3>
<strong></strong> <br />
<a href="https://github.com/johnsonkao/HttpRequest" title="https://github.com/johnsonkao/HttpRequest">https://github.com/johnsonkao/HttpRequest</a> <br />
<strong></strong><br />
<h3>
<strong>參考:</strong></h3>
<br />
<strong></strong><a href="https://www.codeproject.com/Articles/96964/Handling-the-HttpWebRequest">Handling the HttpWebRequest</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-8200673445702626952016-12-09T09:25:00.000-08:002017-03-30T22:49:57.229-07:00解決Visual Studio【server windows nt - 64 bit已經停止運作】<h3>Problem</h3> <p> <br />日前在執行Visual studion 2013 時,會不斷出現以下錯誤訊息: <br /><span style="color: blue">server windows nt - 64 bit已經停止運作 </span></p> <a name='more'></a> <p><span style="color: blue"></span> <br /><a name="more"></a> <br /><span style="color: black">錯誤畫面如下</span><span style="color: blue">  : <br />     <br /><a href="http://lh3.ggpht.com/-mwreD7vV_Hc/VICY7x-3YPI/AAAAAAAACv4/r0vSPcBGWQ0/s1600-h/image%25255B3%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://lh6.ggpht.com/-x5U5RX75GaA/VICY8i_LaNI/AAAAAAAACwA/sCCoOnCoY0w/image_thumb%25255B1%25255D.png?imgmax=800" width="404" height="221" /></a></span> <br /> <br />在Windows事件同樣有以下錯誤 <br /><a href="http://lh6.ggpht.com/-siIDzsohb0I/VICY9Nv9c6I/AAAAAAAACwI/4KcokADOa24/s1600-h/image%25255B7%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://lh3.ggpht.com/-QgLsuP87NHU/VICY9xd7sqI/AAAAAAAACwQ/AC2HwaynQyM/image_thumb%25255B3%25255D.png?imgmax=800" width="399" height="277" /></a> <br /></p> <h4>Why</h4> <p> <br />經過G大師解答, 大約有以下兩個可能:</p> <p>1. Visual Studio要寫入Log到C:\Users\johnson\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0失敗 <br />2. Sqlserver Express被移除</p> <h3>Solution</h3> <br />1. 給予登入帳號以下的目錄可讀寫和去除唯讀 <br />C:\Users\johnson\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0 <br />2. 重新執行Visual Studio  的Setup程式,進行修復 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-43238613089158173502016-12-08T06:43:00.000-08:002017-03-23T07:45:38.417-07:00在VS2015升級windows phone App 7/7.5到8.1<p>假設你有Visual Studio 2015要升級windows phone App 7.1到8.X該如何做?</p> <a name='more'></a> <p>只要打開原本7.5的方案,就會自動升級成8.0,再到專案屬性-應用程式。</p> <p>再改一下目標OS為<font color="#0000ff"><strong>Windows phone 8.1</strong></font></p> <p><a href="https://lh3.googleusercontent.com/-C8uIyhQfXl8/WNPfVHnJsMI/AAAAAAAAEQM/88vE9I6NL98/s1600-h/image_thumb222.png"><img title="image_thumb22" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb22" src="https://lh3.googleusercontent.com/-LVC4V1egOAc/WNPfVuryPbI/AAAAAAAAEQQ/lVEp20noCTA/image_thumb22_thumb.png?imgmax=800" width="519" height="137" /></a></p> <p>專案就會變成以下:Windows Phone Silverlight 8.1</p> <p><a href="https://lh3.googleusercontent.com/-v5KgO9hEewc/WNPfV9BJd1I/AAAAAAAAEQU/vnS6zVNSH0w/s1600-h/image_thumb232.png"><img title="image_thumb23" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb23" src="https://lh3.googleusercontent.com/-bwDqSHKpRYw/WNPfWQL7HFI/AAAAAAAAEQY/e26U7vWnK3w/image_thumb23_thumb.png?imgmax=800" width="532" height="98" /></a></p> <p>接者到Widnows Developer Center--管理APP名稱,輸入名稱:Rock計算機,點<strong>保留產品名稱,並產生一組產品識別碼,識別碼到App身分識別查看</strong></p> <p><a href="https://lh3.googleusercontent.com/-dPqocXbJkoA/WNPfW-oQWFI/AAAAAAAAEQc/0ev9eMqY0wE/s1600-h/image_thumb242.png"><img title="image_thumb24" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb24" src="https://lh3.googleusercontent.com/-66m1j2GMSbI/WNPfXVOhA3I/AAAAAAAAEQg/ytUK3blBY-k/image_thumb24_thumb.png?imgmax=800" width="533" height="279" /></a></p> <p>檢視APP身分識別</p> <p><a href="https://lh3.googleusercontent.com/-AgRWQ5tqOkc/WNPfX3BaZEI/AAAAAAAAEQk/isHF7kdnrVo/s1600-h/image_thumb252.png"><img title="image_thumb25" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb25" src="https://lh3.googleusercontent.com/-wYfwN2t8K_o/WNPfYDl0TAI/AAAAAAAAEQo/vluVh9nYo_0/image_thumb25_thumb.png?imgmax=800" width="539" height="214" /></a></p> <p><strong>[Package.appxmanifest]</strong></p> <p>把上面123動應到專案中的以下資料:</p> <p>0: version:改為1.0.0.1</p> <p>1:  Identity</p> <p>2: Publisher</p> <p>3: PublisherDisplayName</p> <p>4:DisplayName : 先前設定保留名稱 --Rock計算機</p> <p> </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Igi3jgVXRjEXE8NfM42I4lpjt-eahOa-wPZG7zh9ygMGbQoJ4QOe_-_RVfb0fVF8xy8vdI40BsANmH1qsZncXvHUt4dtde1am5BWfK6QazjKun5xB_KXsTtyGY-UV5-wQEiCwXSO8aY/s1600-h/image_thumb442.png"><img title="image_thumb44" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb44" src="https://lh3.googleusercontent.com/-FoqbpmbhLWs/WNPfZMb1xxI/AAAAAAAAEQw/f3zZwsJqlAo/image_thumb44_thumb.png?imgmax=800" width="563" height="66" /></a></p> <p><a href="https://lh3.googleusercontent.com/-ZcSuD8BKLg8/WNPfZfcb7tI/AAAAAAAAEQ0/z9R7vuJ3GW8/s1600-h/image_thumb452.png"><img title="image_thumb45" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb45" src="https://lh3.googleusercontent.com/-rclPTgx2MRs/WNPfZ2W3ObI/AAAAAAAAEQ4/6ak6lQQvOQY/image_thumb45_thumb.png?imgmax=800" width="559" height="53" /></a></p> <p>或是用UI改 <br /><a href="https://lh3.googleusercontent.com/-On91V_rqZ2o/WNPfadGeK_I/AAAAAAAAEQ8/JGmkvMCTH0E/s1600-h/image_thumb432.png"><img title="image_thumb43" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb43" src="https://lh3.googleusercontent.com/-ttye9ym7tUs/WNPfalvffuI/AAAAAAAAERA/IV7TlfHQ8T4/image_thumb43_thumb.png?imgmax=800" width="570" height="235" /></a></p> <p><strong>[WMAppManitest.xml]</strong></p> <p>打開WMAppManitest.xml</p> <p>1. 填入顯示名稱:Rock計算機 (先前設定保留名稱 )</p> <p><a href="https://lh3.googleusercontent.com/-A-bj8a7NtXA/WNPfbHMR_cI/AAAAAAAAERE/9W86K-rEPgQ/s1600-h/image_thumb422.png"><img title="image_thumb42" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb42" src="https://lh3.googleusercontent.com/-b2fiutC94y8/WNPfbrbkrmI/AAAAAAAAERI/dsLnCa4091I/image_thumb42_thumb.png?imgmax=800" width="585" height="264" /></a></p> <p>2. 封裝。 <br />預設語言-中文(繁體台灣)</p> <p><a href="https://lh3.googleusercontent.com/-FQk0_oulBFI/WNPfcOk5bjI/AAAAAAAAERM/Q5wdADLVHZs/s1600-h/image_thumb292.png"><img title="image_thumb29" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb29" src="https://lh3.googleusercontent.com/-MAiHWg4YM2o/WNPfcXUJ-QI/AAAAAAAAERQ/cqL0jXwPuaA/image_thumb29_thumb.png?imgmax=800" width="587" height="226" /></a></p> <p>取消<strong>ID_CAP_GAMESERVICES</strong></p> <p><a href="https://lh3.googleusercontent.com/-XhHADHmYzIE/WNPfc8k2_KI/AAAAAAAAERU/_TsmCYtkgD0/s1600-h/image_thumb592.png"><img title="image_thumb59" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb59" src="https://lh3.googleusercontent.com/-rhykgwRLZS4/WNPfdcs0PxI/AAAAAAAAERY/pVk1KbQG0EA/image_thumb59_thumb.png?imgmax=800" width="572" height="267" /></a></p> <p><strong>[置換圖檔]</strong></p> <p>以下原生要改成自己的,其實可以隨便複製別處,因為用不到僅僅要通過檢查用 <br /><a href="https://lh3.googleusercontent.com/-qjk12Z61grY/WNPfdo9WWzI/AAAAAAAAERc/izZjdoUJSlA/s1600-h/image_thumb362.png"><img title="image_thumb36" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb36" src="https://lh3.googleusercontent.com/-HaYvCYk2T2A/WNPfeNHhUPI/AAAAAAAAERg/En0n4WRlMvM/image_thumb36_thumb.png?imgmax=800" width="244" height="142" /></a></p> <p>上傳前先執行"啟動Windows應用程式認證套件" <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5eaknqsg5GRhBqb3iS3AudvH8quMDCmJR1RzBkBLAIbXt0ROMoVAGJ_JYgqHIrGVnJSXvcES6BQH97Swji_0RQysMI9b6Ue-ycRXOm_guhIaueivkGH1SaU0I9wprKzN3lPlSaD0B4Og/s1600-h/image_thumb382.png"><img title="image_thumb38" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb38" src="https://lh3.googleusercontent.com/-3cOIQdrzYJ8/WNPfe_DjxTI/AAAAAAAAERo/TQxqrCe5K9Y/image_thumb38_thumb.png?imgmax=800" width="457" height="408" /></a> <br /><a href="https://lh3.googleusercontent.com/-UrPKpwII6-4/WNPffYhT05I/AAAAAAAAERs/vC8FrVycjyw/s1600-h/image_thumb412.png"><img title="image_thumb41" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb41" src="https://lh3.googleusercontent.com/-QMvV3K_P-1Q/WNPff_ENuEI/AAAAAAAAERw/BBtUIEOPkww/image_thumb41_thumb.png?imgmax=800" width="451" height="338" /></a></p> <p>以上完成後,先清除專案,再重新建置。</p> <p>建置好產生XAP在bin\release,進入Widnows Developer Center,選  提交,設定以下</p> <p>1. 套件,上傳XAP</p> <p><a href="https://lh3.googleusercontent.com/-mbypxbu2qAs/WNPfgRMAd4I/AAAAAAAAER0/upSogK1YuIk/s1600-h/image_thumb302.png"><img title="image_thumb30" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb30" src="https://lh3.googleusercontent.com/-HRhc-Bke6eA/WNPfgoHY1qI/AAAAAAAAER4/_WZkNawxgek/image_thumb30_thumb.png?imgmax=800" width="558" height="360" /></a></p> <p>2. 市集清單,點選支援語言 <br /><a href="https://lh3.googleusercontent.com/-C4VL4pJFfbc/WNPfhLi7F9I/AAAAAAAAER8/fwrChXloE5c/s1600-h/image_thumb472.png"><img title="image_thumb47" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb47" src="https://lh3.googleusercontent.com/-xwolyHWMvpw/WNPfhiYWVNI/AAAAAAAAESA/PYkGMlnXIw4/image_thumb47_thumb.png?imgmax=800" width="593" height="80" /></a></p> <p>輸入以下</p> <p>A. 描述</p> <p><a href="https://lh3.googleusercontent.com/-L9AqJy8UwJE/WNPfiGPCfwI/AAAAAAAAESE/uOq0E41Nd4o/s1600-h/image_thumb562.png"><img title="image_thumb56" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb56" src="https://lh3.googleusercontent.com/-09zIt_zAxS0/WNPfiu2gkJI/AAAAAAAAESI/PloV6AnY8_Y/image_thumb56_thumb.png?imgmax=800" width="547" height="287" /></a></p> <p>B. 行動電話螢幕擷取畫面</p> <p>任一 768 x 1280、1280 x 768、720 x 1280、1280 x 720、800 x 480 或 480 x 800 像素的圖</p> <p><a href="https://lh3.googleusercontent.com/-jsWW3xOT_Jc/WNPfiwEiAkI/AAAAAAAAESM/34Utg5P8fIc/s1600-h/image_thumb542.png"><img title="image_thumb54" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb54" src="https://lh3.googleusercontent.com/-2Hl6ji2l-Us/WNPfjdB--ZI/AAAAAAAAESQ/wSLvKKljgNo/image_thumb54_thumb.png?imgmax=800" width="532" height="198" /></a></p> <p>C. App磚圖示</p> <p><a href="https://lh3.googleusercontent.com/-lSKE7x3smCU/WNPfjsHkTtI/AAAAAAAAESU/8C6Vlp9kKhY/s1600-h/image_thumb552.png"><img title="image_thumb55" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image_thumb55" src="https://lh3.googleusercontent.com/-2u0xgFczAdQ/WNPfkVNJFSI/AAAAAAAAESY/TwG34XEnqG8/image_thumb55_thumb.png?imgmax=800" width="548" height="194" /></a></p> <p>完成後按儲存, 就可再一次送出審核</p> <p>備註:</p> <p>1.在早於 Windows 10 的作業系統上執行時,某些適用於 Windows 通用開發的 Visual Studio 功能可能會降低。 <br />2. 包含對 Windows 8.1 遠端偵錯的支援。 <br />3. Visual Studio 2015 支援 Windows 市集應用程式專案從 Windows 8 至 Windows 8.1 的移轉。 Visual Studio 2013 仍可保留現有的 Windows 8 專案,包括 Windows 8.1 和 Windows 8 的遠端偵錯。 使用 Visual Studio 2012 建立新的 Windows 8 專案。 <br />4. Visual Studio 2015 支援 Windows Phone 7 和 7.5 專案至 Windows Phone 8 的移轉。 <br />5. 支援將 Windows Phone 8 專案移轉至 Windows Phone Silverlight 8.1。</p> <p> </p> <p>參考:</p> <p><a title="Visual Studio 2015 with Windows Phone 7" href="http://stackoverflow.com/questions/34855095/visual-studio-2015-with-windows-phone-7">Visual Studio 2015 with Windows Phone 7</a></p> <p><a href="https://www.visualstudio.com/zh-tw/productinfo/vs2015-compatibility-vs">Visual Studio 2015 平台目標及相容性</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-1185675660296641752016-11-16T23:37:00.001-08:002017-03-30T23:25:25.078-07:00Visual Studio 偵錯時不要用XX.vshost.exe<h3>Requirement</h3> <p>預設上,Visual Studio在偵錯windows form時,會用<strong>XX.vshost.exe</strong>來執行我們的程式,如果我們如果為了某些目地想要用跟Production環境一樣的<strong>XX.exe</strong>來跑(像是要偵測已經執行相同名稱的exe程式), 也就是偵錯時產生一般的<strong>XX.exe</strong>, 而不是<strong>XX.vshost.exe</strong>, 可依以下步驟調整:</p> <a name='more'></a> <p> </p> <a name="more"></a> <h3>Solution</h3> <p>1. 選擇EXE所在專案,點 專案--右鍵--內容</p> <p>2. 將"啟動Visual Studio裝載處理續" 打勾取消掉</p> <p><a href="https://lh3.googleusercontent.com/-PxX9bi-Kb08/WC1d_PJrFuI/AAAAAAAAEA8/EibM04kAkrI/s1600-h/image%25255B3%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-MC7dcTI7QMA/WC1eBaYDxrI/AAAAAAAAEBA/3gFKqqvIXok/image_thumb%25255B1%25255D.png?imgmax=800" width="572" height="273" /></a></p> <h3>Test</h3> <p>開始偵錯時,打開windows 工作管理員, 就可看到xx.exe了,而不是<strong>XX.vshost.exe 了。</strong> <br /><a href="https://lh3.googleusercontent.com/-i5Sj0OUIDAg/WC1eCvabxTI/AAAAAAAAEBE/JM7-HgYBqkc/s1600-h/image%25255B7%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-AEsD-Dpzc0c/WC1eE-UwljI/AAAAAAAAEBI/4LeBYGMgilo/image_thumb%25255B3%25255D.png?imgmax=800" width="567" height="161" /></a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-624005355529503213.post-82542079425430966262016-10-20T05:30:00.001-07:002017-03-30T20:20:46.513-07:00解決windows 2012 新增.net 3.5失敗<h3>Problem</h3> <p>日前在windows server 2012 新增.net 3.5 ,出現以下畫面,如果不理會直接按安裝,會失敗收場</p> <a name='more'></a> <p> </p> <a name="more"></a> <p> <br /><a href="https://lh3.googleusercontent.com/-JDBksfZS3L8/WAi44zjjSaI/AAAAAAAAEAM/uGq5uJO1F0s/s1600-h/image%25255B3%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-pI9k3dDu4ew/WAi45k8jl0I/AAAAAAAAEAQ/F-rFDJNVMXs/image_thumb%25255B1%25255D.png?imgmax=800" width="539" height="378" /></a> <br /></p> <h3>Why</h3> <p>究其原因是找不到.net 3.5的安裝路徑。</p> <h3>Solution</h3> <p>解決之道,就是畫面上的指示,點一下畫面上<font color="#0000ff"><strong>指定替代來源路境<font color="#666666"> ,重新指定路徑</font></strong></font> <br />假設你的windows server 2012安裝光碟放在D : <br />那路就是以下:</p> <p><strong>D:\sources\sxs</strong></p>Unknownnoreply@blogger.com0