Category Archives: ASP.Net Tips and Tricks

Connect SQL Server on Appharbor via Management Studio

今天想和大家分享 使用 AppHarbor 上的 SQL Server的方法
其實和其他連續雲端的 Microsoft SQL Server 差不多的
可能我太耐沒有學習新的東西..
所以在找如何在AppHarbor上連接 到Microsoft SQL Server..也花了一點時間

最後終於找到方法了

大家先選擇你的Application
之後在左手邊的選項上可以找到 你可以做的東西
選擇” Configuration Variable
之後便會看到所有和這個Application 相關係設定變數
AppHarbor Configuration Variable
只要複製 到文字檔上便可以看到 和SQL Server 上的設定
E.G.
Server Name, Database name, username password

E.g.
Server=DBServerName.sqlserver.sequelizer.com;Database=ThisIsTheDataBaseName;User ID=ThisIsUserName;Password=HashedPassword;

之後把資料填上SQL Server Management Studio 便可以連接到了

Hope you find it useful

Could not load file or assembly ‘System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes’ or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

今天在Publish 網頁到 Development Server時出現以下的錯誤
Could not load file or assembly ‘System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes’ or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

這個是ASP.Net MVC 3的網站
Host 在 Windows Server 2008 R2IIS 上 安裝了 .Net Framework 4.0

在加入了AutoMapper 這一個Nuget Package 之後便出現這個問題了

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

解決方法:
大家可以到 以下網址下載及安裝 .Net 4.5.1或更新的版本..

http://www.microsoft.com/en-gb/download/details.aspx?id=40779

這便可以解決這個問題

Hope you find it useful

SCRIPT5022: Sys.WebForms.PageRequestManagerServerErrorException: Input string was not in a correct format

今天又有客戶投訴公司的網頁有問題..
他們不能Download Invoice
我們試了很多不同的Browser終於找到了問題了
他們下載不到Invoice 的原因是因為我們用了ASP.NetImage Button Control
IE10 和 以前的IE 對這個Control 的方法是不一樣的
所以便出現了這個問題
當我們按下這些Image Button的時候
IE Developer tool上的便會出現以下的錯誤
SCRIPT5022: Sys.WebForms.PageRequestManagerServerErrorException: Input string was not in a correct format. “ ScriptResource.axd
解決方法:
方法一:
有很多朋友說在Server 上安裝 .Net 4.5Application Pool.Net 4 轉成 .Net 4.5便可以了

方法二:
另一個解決方法是在 相關的頁面上的<Head> Tag 入

<meta http-equiv="X-UA-Compatible" content="IE=9" />

加入以下的Meta Tag..當用戶使用IE10的話..嘗試便他們的IE10IE9 模式瀏覽網頁
在我的情況下我在Master Page上加入了便解決這個問題的

Hope you find it useful

ASP.NET Dynamically change GridView Header Text

今天公司需要更改公司的網站上GridView Header上的 內容.

之前以為解決方法很簡單的..
只是在DataBinding
使用更改Header 的Code 便可
E.G.
VB.Net

ShareChiWai_GridView1.Columns(1).HeaderText="New Column Header Content"

C#

ShareChiWai_GridView1.Columns[1].HeaderText="New Column Header Content";

可惜不能成功..

最後終於找到了解決放法了…
我們需要建立一個GridView RowCreated Event
之後檢查現在的Row類型是不是 DataControlRowType.Header

如果是的話便使用以下的Code 來更改內容..
e.Row.Cells(ColumnID).Text =”新的Column Header”

解決方法:

VB.Net

Protected Sub gv_ShareChiWai_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_ShareChiWai.RowCreated
If (e.Row.RowType = DataControlRowType.Header) Then
e.Row.Cells(6).Text = "中文內容"
e.Row.Cells(8).Text = "第8行"
End If
End Sub

C#

protected void gv_ShareChiWai_RowCreated(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
	if ((e.Row.RowType == DataControlRowType.Header)) {
		e.Row.Cells[6].Text = "中文內容";
		e.Row.Cells[8].Text = "第8行";
	}
}

Hope you find it useful

 

Where is ASP.NET AJAX-Enabled Web Site Template On Visual Studio 2008 – 在VS2008 上如何建立一個ASP.NET AJAX-Enabled Web Site

今日有朋友發現了一個很有趣的問題..
Visual Studio 2008 上為什麼沒有了 ASP.NET AJAX-Enabled Web Site Template的..
由於我沒有用VS2008 來create web applicaiton..所以都沒有察覺到這個問題..
之後嘗創建一個新的ASP.Net Web Application Project 來看看
原來在Visual Studio 2008或以上已經沒有分開是 ASP.Net Ajax-Enabled WebsiteASP.Net Web Application 了.

New ASP.Net Web Application 上沒有了ASP.NET AJAX-Enabled Web Site Template

如果要在VS2008 上寫一個ASP.NET AJAX-Enabled Web Site 可以怎樣做呢?

解決方法:
先建立一個ASP.Net Web Application
之後可以在Project folder 上 按右鍵一下 選擇”Add“-> “New Item…


你便可以選擇和”Ajax” 相關的Template 了

Hope you find it useful

ASP.NET SSL Issue – IE 上的SSL 問題

最近公司建立了一個新的網站..
提供一個介面給客戶更新資料..
最初的我們沒有使用SSL 的…
由於有些資料是一些敏感性的資料
所以需要使用SSL 來把資料加密

這個網頁有些功能是使用Google Chart API
所以有一些圖的URL 是連接到不是同一Domain 的 URL. E.G.  Google
還有..這個網站也有使用JQuery的..
而我們使用的是在Google 寄存的 JQuery Library
[以減輕經路的負荷…]
誰不知..加了SSL 後的網站..在IE的底下便出了一個問題…
每當開啟一些網頁有和連接到不是本地的URL/ E.G. 網外的URL 時
便會出現以下信息
Do you want to view only the webpage content that was delivered securely?

Do You want to view only the webpage content that was delivered securely?

感到十分煩惱…
之後發現解決放法有2個.. 一是改變IE 的設定..二是改變這個網站的編寫方法

解決方法
1) 更變IE 設定
可以在IE上的Menu bar 上按 “Tools”  -> “Internet Options
在”Internet Options” windows 按一下 “Security 安全“分頁
之後按一下”Custom Level … 自定級別…“按鈕
在”安會設定” 找 “Display mixed content
把他設定為”Enable” 之後按”OK” 便可

[由於公司有很多使用者…要他們改變他們的 IE 設定給他們的感覺很不專業…所以我們便想了另一個解決方法]

2) 改變網站的設計
預先Download 所有向外又不是HTTPS 的 URL 連結用的資源到IIS Server
我們寫了一個方法先把Google Chart API 生產出來的圖Download 到Server 上之後再把他連到ASP.Net 網頁上
和把寄存在網上的javascript 和css 檔案都Download 到一個資料夾上使用
Hope you find it useful

IE:The file could not be written to the cache — 在IE 上出現 該文件不能寫入到緩存

今天公司的ASP.Net網頁上出現了一個問題
首先是有客戶[在IE 中]不能打開一個xls 的超連結…
我們測試時用FireFox Google Chrome 都是沒有問題的
之後再用IE 嘗試打開找download 這個File 時出現以下的錯誤信息
The file could not be written to the cache


之後發現原因是因為我們公司的網頁是用了SSL 來加密的..
但是之前為了增加網頁的效能和使用考經驗我們亦都 啟用了 IIS 上的 “Enable content expiration” 設定.. 因為這些文件不會更新得很頻密的關係所以啟動了Cache…
很可惜IE 處理和 SSL有關的文件的Cache 上出現了一些問題… 所以便出現了這個錯誤句子了

解決方法很簡單…
就是到IIS
把開相關的”資料夾內容“/ 或”Virtual Directory 內容
之後選擇”Header tab
只要取消選取”Enable content expiration

Hope you find it useful