2015年11月17日 星期二

VS2015 部署問題 BC30456: 'InitializeCulture'

使用VS2015 publish web app後,部份aspx的程式進入後顯示以下錯誤訊息,

編譯錯誤

描述: 資源編譯無法完成 (錯誤發生於服務要求)。請檢閱下列的特定錯誤詳細資料,並視情況修改您的原始程式碼。

編譯器錯誤訊息: BC30456: 'InitializeCulture' 不是 'ASP.test0200_search_aspx' 的成員。

查看顯示詳細的編譯器輸出資料後,有顯示這麼一段可疑的訊息

 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\test\bac62fb0\75a1220a\App_Web_eghhxrxs.0.vb(45) : error BC30560: 'test0200_search' 在命名空間 'menu' 中模稜兩可。 Inherits Global.menu.test0200_search

所以用關鍵字test0200_search進行搜尋後,發現有二個.aspx 有相同的Inherits="menu.test0200_search" %>同時也關連到了code behind .aspx.vb的class名稱,更改為正確的Inherits="menu.test0200_search1" 後,網站執行就正常了。

我想這隻aspx應該是copy and paste修改來的吧。


同時,在這篇討論中 http://forums.asp.net/t/955888.aspx?BC30456+InitializeCulture+is+not+a+member+of+

也提供一個解決方法

During the publishing stage on framework 2.0 uncheck the "allow this precompiled site to be updatable".  Once I unchecked this it published correctly and functioned correctly on IIS.  With it checked I would always receive 'InitializeCulture' is not a member of ...

 試了一下publish web app時,在部署設定選項中不勾選precompiled後網站也是可以正常執行的。

2015年10月26日 星期一

SSRS RDL 顯示不出微軟正黑體

同事傳來一個SSRS RDL報表檔,說table的欄位字型設成微軟正黑體後,預覽時,全部都變成了空白的一片。但匯出PDF,報表的字型顯示又都很OK,只有在預覽時不正常。

但將微軟正黑體改成新細明體後,預覽又都變得很正常。

把他的rdl用我的SSDT BI 2013打開來看,預覽了一下,在我的機器上看來都很OK咧。

因同事的REPORT DESIGNER是VS2008的中文版本,在設計報表時,字型的下拉選項是直接可看到微軟正黑體的選項,但我的是VS2013英文版,只有Microsoft JhengHei UI這個選項,但不論我是打微軟正黑體、Microsoft JhengHei或是選Microsoft JhengHei UI,報表預覽都很正常。

後來測了一下,發現只要在VS2008的環境中,把字型輸入改為直接打上Microsoft JhengHei後,神奇的是,報表預覽就一切都正常了。

怪哉!


2015年9月2日 星期三

該打掉重練的微軟合作伙伴網站

https://mspartner.microsoft.com

微軟合作伙伴的網頁,用了幾年,無疑是我認為最沒長進的網站了。

微軟自家的網站怎麼可以慢到一個不行?

然後有時還會導到莫名的錯誤頁面。

一堆連結連來連去的,我都花了。

操作的UI很不友善(就如同人客幹譙我們一様...哈哈)

我覺得他要打掉重練吧 (就如同我自已的內容OS一樣....哈哈)

VS2015 部份欄位變亂碼

安裝了VS2015後,將原本的專案PUBLISH。
結果有一個畫面部份欄位中文變成了亂碼。

原本以為是.cshtml中文字亂掉了,結果一看,都是自訂的mvchtmlhelper所產出的label欄位
怪的是,同一個model,部份欄位中文顯示亂碼,但部份欄位則顯示正常的中文。



參考了二篇文章
【茶包射手日記】VS2015程式檔編碼問題
Visual Studio 2015的坑:中文字符串编译后成乱码 (這標題很貼切,真是他媽的坑...)

也用notpad++查看可疑的.cs檔,

咦,還真的是big5咧。





2015年8月31日 星期一

T400 Windows 10

實在是很痛苦的安裝經驗。
想把一顆原本安裝WIN8的硬碟換成WIN10看看。殊不知開啟了二天二夜今人沮喪、灰心的心路歷程。把我過去多年來的安裝經驗給重新清洗一遍。
所以要好好記錄一下。

之前習慣用WINUSB這個工具製作USB安裝開機,做過WIN7及WIN8安裝使用都沒有什麼問題。

但這次製作WIN10的開機USB後 ,進入到選取安裝磁碟機時,就出現以下的訊息

安裝程式無法建立新的系統磁碟分割, 也找不到現有的系統磁碟分割

試了網路上的所有方法後,一切了然,通通無效,包括安裝過程中SHIFT+F10 DISKPART設定磁碟、包括USB3.0換成USB2.0開機安裝相同(要再安裝之前裝WIN8用的USB也變得無理取鬧了起來)。

很奇怪咧,難到是鬼月嗎?

最後回到光碟機開機安裝,重見光明,所有的鬼的跑了,完成WIN10的安裝。

2015年8月11日 星期二

Entity Framework 設定command timeout及isolationlevel

 
修改你的emdx例 MyData.edmx 下的MyData.Context.cs檔
在初始化時加入設定,如下:

 public MyDataContext()
            : base("name=MyDataContext")
{
 this.Database.CommandTimeout = 180;  //秒,語法執行timeout時間
 ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180; //這樣也可
 //isolation=readuncommitted         
 ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

}


在SSMS 模擬LOCK狀態
begin transaction
update mytable set mycolymn =1 where myid = 1

然後執行網站上的查詢程式,會發現畫面一直在處理中

在SSMS 執行rollback還原後,網站畫面就可以顯示查詢結果了

在context建立時加入上述設定,就可避掉資料批次異動處理時造成的LOCK而無讀取。


2015年7月26日 星期日

移機掛載MDF

重裝OS WIN8,想將原來的SQL2014 資料庫利用附加方式掛載,掛載時出現以下訊息:

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

CREATE FILE encountered operating system error 5(存取被拒。) while attempting to open or create the physical file 'E:\WorkDB\SQL2014\Data\XXXXX.mdf'. (Microsoft SQL Server, Error: 5123)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.4100&EvtSrc=MSSQLServer&EvtID=5123&LinkId=20476



------------------------------

爬文查看後,開啟SSMS時得要用Administrator權限。
解法是直接關掉UAC,除了 控制台\使用者帳戶和家庭安全\使用者帳戶 變更使用者帳戶控制設定調到不通知外,還得改一下機碼才可在WIN8真正關掉UAC

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\EbableLUA 設為0 

太久沒重裝了,都忘了要先關UAC,關了他避免掉許多麻煩,但自已得要有SENSE不要開了不該開的東西啊。 

ps.一直搞不懂,登入帳號就是administrators群組了,為何開啟應用程式時,老要問我是否要以系統管理者執行呢? 

2015年4月26日 星期日

rdlc 匯出excel,不合法的 xml 字元

rdlc或rdl,在匯出excel(xlsx)後,開啟execl檔,出現『我們發現XXX.xlsx的部份內容有問題。您要我們盡可能嘗試復原嗎?如果您信任此活頁簿,請按一下【是】』。

接著點選【是】 後,就出現以下錯誤:

已取代的部分: /xl/worksheets/sheet1.xml 部分具有 XML 錯誤。  不合法的 xml 字元。 行 17,欄 441033。

測試後,原來有一個欄位的內容造成匯出的錯誤。但不解的是WHY??

這個欄位的內容如下,看起來似乎很正常,但把他COPY起來貼到記事本後,會發現設備前多了一個看似空白的空格。

脈衝電場(PEF)殺菌 設備

解出來是0x0B,在XML上這是個不合法的字元。

所以先把這個看似空白的字元刪除,匯出後開啟EXCEL就OK了。

2015年3月5日 星期四

已經開啟一個與這個 Command 相關的 DataReader,必須先將它關閉

.net 執行SQL指令時,出現以下錯誤。

已經開啟一個與這個 Command 相關的 DataReader,必須先將它關閉。

在web.config connectionstring 加入 "MultipleActiveResultSets=True" 後,顯示出了正確的錯誤原因,原來是SQL SELECT 中有相同的欄位名稱重覆了二次。

2015年2月11日 星期三

MSOLAP 目標電腦拒絕連線

一個legacy system,vb2003+sql2000+olap2000+dts2000+rs2000,用了11年了。

中間曾因客戶不想花錢升級sql2005,因為OLAP和DTS要打掉重做,客戶覺得為什麼要花錢重做,為什麼不能直接升級上去就好...BLA BLA BLA.....反正就一直撐著。


最近有個以他的OLAP2000當資料來源的系統先升級了,OS換成WINDOWS 2008R2+SQL2005 64bit,原本是WINDOWS2003R2+SQL 2005 32bit,升級後,在SQL 2005 64BIT上建立OLAP 的LINKED SERVER時,出現了以下的錯誤,
MSOLAP 目標電腦拒絕連線

查到這篇KB,真是殘念啊,OLAP2000只能在SQL SERVER2005 32BIT上才能建立LINKED SERVER。

After you install a 64-bit instance of SQL Server 2005 Analysis Services, only the 64-bit version of the Microsoft OLE DB Provider for Analysis Services 9.0 provider is available. The 64-bit version of the SQL Server service can use this provider to connect to 64-bit instances of SQL Server 2005 Analysis Services and to 32-bit instances of SQL Server 2005 Analysis Services. However, the 64-bit version of the SQL Server service cannot use this provider to connect to SQL Server 2000 Analysis Services.

After you install a 32-bit instance of SQL Server 2005 Analysis Services, the 32-bit version of the Microsoft OLE DB Provider for Analysis Services 9.0 provider is available. If you are running the 32-bit version of the SQL Server service, the SQL Server service can use this provider to connect to SQL Server 2000 Analysis Services. 

改裝了SQL2005 32BIT就可正常連線到OLAP2000了。

最近花了很多時間在搞這種舊系統,真是累!

2015年2月10日 星期二

SQL2014 SHORTCUT RECOVERY

安裝了SQL Server2014後,原本的捷徑紛紛失效
例如CTRL+R,可以顯示或隱藏QUERY RESULT

機器上原本安裝的是SQL 2012,結果也在安裝完SQL2014後,捷徑也一起失效了。

查了半天,有人說在Tools>>Options>>Environment>>Keyboard Reset一下keyboard的設定就回復正常了。

如法泡製...咦........真的就好了。

附上SHORTCUT說明

https://msdn.microsoft.com/zh-tw/library/ms174205.aspx

publish error allowDefinition='MachineToApplication'

一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...