ASP.NET Web API專案使用EntityFramework載入Master/Details資料遇到ASP.NET Web API序列化錯誤:
重現問題:
執行時,顯示Proxy物件序列化錯誤
解法,關掉Proxy建立動作
搞定!!
我們可以使用 [IgnoreDataMember]控制某些成員不做序列化:
不序列化Orders
ASP.NET Web API專案使用EntityFramework載入Master/Details資料遇到ASP.NET Web API序列化錯誤:
重現問題:
執行時,顯示Proxy物件序列化錯誤
解法,關掉Proxy建立動作
搞定!!
我們可以使用 [IgnoreDataMember]控制某些成員不做序列化:
不序列化Orders
New MVC 4 Project
可以使用建構函式來建立,語法煩瑣,可以使用Tuple.Create方法建立,利用ItemX取出值。
可以當參數傳入mymethod
可以當作方法回傳值
private static void demo3( ) {
Console.WriteLine( mymethod2( ).Item1 );
Console.WriteLine( mymethod2( ).Item2);
}
private static Tuple<int , string> mymethod2( ) {
return Tuple.Create<int,string>(1,"mary");
}
可以建立1~7個項目 tuple,超過8個以上可以使用Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>物件的來建立,再透過Rest屬性存取TRest中項目的值。定義8個項目:
private static void demo4( ) {
var t8 = new Tuple<int , int , int , int , int , int , int , Tuple<int>>( 1 , 2 , 3 , 4 , 5 , 6 , 7 , Tuple.Create(8) );
Console.WriteLine( t8.Rest.Item1); //8
}
定義9個項目:
private static void demo5( ) {
var t9 = new Tuple<int , int , int , int , int , int , int , Tuple<int , int>>( 1 , 2 , 3 , 4 , 5 , 6 , 7 ,
new Tuple<int,int>(8,9)
);
Console.WriteLine( t9.Rest.Item1); //8
Console.WriteLine( t9.Rest.Item2 ); //9
}
使用Visual Studio 2012先建立一個ASP.NET MVC 4 - Internet範本專案測試部署
複製DB連接字串
部署ASP.NET MVC 4 Web Application to IIS 8
Tools: Visual Studio 2012
第一步要以系統管理員身份執行Visual Studio 2012
Create a New Web Application to deploy
預設Internet 範本使用Entity Framework 5.0 Code First方式建立會員資料庫,我希望部署到Server 時,資料庫改用SQL Express。
預設Web.config檔案內,含連接字串如下:
在Web.Release.config檔案加入:
Build Solution
Publish
publish到本機IIS試看看
Preview 沒問題,就按下Publish
成功之後,會自動啟動Browser,顯示網站首頁
檢視IIS wwwroot下網站的程式檔案都部署上來了,web.config檔案內包含的連接字串是Release版的,連到sqlexpress
試著註冊會員
發生錯誤,權限不足
檢視IIS MyMVCApp執行在DefaultAppPool
DefaultAppPool目前使用ApplocationPoolIdentity身份執行
使用SQL Server Management Studio連接到SQLExpress
新增login
設定登入名稱
授權dbcreator
回到Browser,就可以註冊了
輸入帳號密碼
網站便可登入
使用SQL Server Management Studio檢視DB已建立,UserProfile資料表中,含一筆資料