Category Archives: .Net Tips And Tricks

dotnet watch does not refresh content for AspNetCore.SpaTemplates React / Angular

最近使用了 ASP.Net CoreSPA Template 來學習 ReactJs
因為我可以使用 ASP.Net Core 來做 Web API.. 而 ReactJs 來做 Web Front End
之後便可以deploy到 Azure 十分方便.. 又可以很快看到效果
ASP.Net Core App can NOW be deploy to Azure – (Azure web app)

由于使用Visual Studio 開發感覺比效慢
所以便用了Visual Studio Code

不久便出現了一個問題..就是在Visual Studio 開發時
修改 ReactJs 相關的程式碼..在Debug
是可以看到修改後的結果的
但是用Visual Studio Code 配合 “dotnet watch run” 時
Enable dotnet watch – on asp.net core

dotnet watch run

dotnet watch run
網頁便不會更新… 但是deployAzure 時是看到了修改的結果的

做了一會research之後 終於找到了解決方法

解決方法
我們需要使用另一個Terminal windows 執行 “webpack –watch” 這個指令 便可以了

webpack --watch

webpack --watch
Hope you find it useful

The target principal name is incorrect. Cannot generate SSPI context

由於最近公司有Product go Live, 所以有很多時候有些urgent 的問題要解決

又不幸的。。。我的電腦剛剛安裝好。。還安裝了Visual Studio 2017.
當我嘗試執行公司的Project時。。出現了以下的錯誤信息。。
The target principal name is incorrect. Cannot generate SSPI context
The target principal name is incorrect. Cannot generate SSPI context

起初還以為是Visual StudioSQL Server版本問題。。
當我仔細看了這個Error message和 connection string 之後。。
便發現問題是來自 Connection string… 因為有了兩隻不同的Login方法
而我們的電腦在Server上沒有Login的Permission

原本的connection string

<add name="ShareChiWaiContext" providerName="System.Data.SqlClient" connectionString="Data Source=sharechiwai.com;Initial Catalog=Blog;User ID=testUser;Password=TestPassword;Integrated Security=True;MultipleActiveResultSets=True" />

只要移除integrated = true 便可以了
解決了的 Connection String
E.g

<add name="ShareChiWaiContext" providerName="System.Data.SqlClient" connectionString="Data Source=sharechiwai.com;Initial Catalog=Blog;User ID=testUser;Password=TestPassword;MultipleActiveResultSets=True" />

Hope you find it useful

How to bypass Exception in Visual Studio

最近係公司寫的一個Web app 因為backend 的web api 有些問題的關係。。所以不能連接要development server 上某些data 所以久不久便彈一些 unhanded exception出來。。

嘗試 Debug的時間。。因為Visual Studio會在有 throw exception的地方停下來的關係。當你不為意的時間。會在想。。為什麼程式會停下來。。
其實可能是因為 visual studio 在  執行那些程式碼上throw 了exception停下來。自己又沒有為意

解決方法十分簡單
我們只要在 Visual Studio Throw Exception “Exception was unhandled by user code” 這個popup上
Break When This Exception Type Is User handled
untick了 “Break when this exception type is user-unhandled
下次再遇到同樣的exception時便會繼續執行

Hope you find it useful

HTML5 Upload PDF only

今天在公司更新了一個功能是讓使用者上載文件
e.g. PDF/doc/docx等等

希望可以和大家分享

< input accept="application/pdf,application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document" name="Upload Saved Replay" type="file" />
<input accept="application/pdf,application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document" name="Upload Saved Replay" type="file" />

Hope you find it useful

‘ssh’ is not recognized as an internal or external command – 如何在Windows 命令提示符 上使用 SSH

很多時候網上的教學都是使用LinuxMacBash
有很多時候都會使用到SSH

最近嘗試在Windows 的Command Prompt上使用 SSH時出現以下的錯誤信息
‘ssh’ is not recognized as an internalor external command, operable program or batch file
SSH is not recognized

如何可以在Windows 命令提示符 上使用 SSH
解決方法十分簡單
相信很多Developer都有使用Git
如果唔有的話可以到以下網址 下載及安裝Git
https://git-scm.com/downloads

安裝完成後..便可以在WindowsEnvironment Path 環境變數上的 “Path“變數上加上
Git\usr\bin 的路徑
因為這個路徑上存有很多有用的工具/程式
E.G
C:\Program Files\Git\usr\bin
Git User Bin Path

按下”確定“便可以了
Add Environment Variable on Windows 10 for Git User Bin

之後當我們在WindowsCommand prompt上執行 SSH
Successfully Run SSH on Windows
Hope you find it useful

CS1617: Invalid option ‘6’ for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default

在公司Download / 執行網上教學的Sample Code 來測試時
久不久便會出現以下的錯
CS1617: Invalid option ‘6’ for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default
CS1617: Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default

這是因為Sample Code是用了Visual Studio 2015 來建立的 Default的 .Net Framework4.5.2 / 4.6
而公司是使用Visual Studio 2013.Net Framework是 4.5

所以Web.Config上有小小Mis-match
解決方便 十分簡單
我們只需要更改 compilerOptions=”/langversion:6 改變成 compilerOptions=”/langversion:5 便可以了

更改前

&lt;system.codedom&gt;
 &lt;compilers&gt;
 &lt;compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,
 System, Version=4.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089" warningLevel="4" 
 compilerOptions="/langversion:6 /nowarn:1659;1699;1701"&gt;
 &lt;providerOption name="CompilerVersion" value="v4.0"/&gt;
 &lt;/compiler&gt;
 &lt;compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&amp;quot;Web\&amp;quot; /optionInfer+"/&gt;
 &lt;/compilers&gt;
 &lt;/system.codedom&gt;

Original Web.config
更新後

 &lt;system.codedom&gt;
 &lt;compilers&gt;
 &lt;compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,
 System, Version=4.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089" warningLevel="4" 
 compilerOptions="/langversion:5 /nowarn:1659;1699;1701"&gt;
 &lt;providerOption name="CompilerVersion" value="v4.0"/&gt;
 &lt;/compiler&gt;
 &lt;compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&amp;quot;Web\&amp;quot; /optionInfer+"/&gt;
 &lt;/compilers&gt;
 &lt;/system.codedom&gt;

Web.config for VS2013
CS1617 Issue Fixed
Hope you find it useful