iT邦幫忙

0

ASP.NET 4.0 WebForm的網站整合進 ASP.NET MVC4的專案, 失敗?

player 2013-02-19 18:41:1812866 瀏覽

ASP.NET MVC4的專案裡沒有App_Code資料夾, 即使手動建立
在重建裝案時, App_Code資料夾仍無法順利建置?
這導致原本使用WebForm架構的 aspx 檔, 如果有使用到App_Code資料夾裡自訂的class, 通通無法順利重建?

有人試過
ASP.NET 4.0 WebForm的網站整合進 ASP.NET MVC4的專案
嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

10
外獅佬
iT邦大師 1 級 ‧ 2013-02-20 08:53:06
最佳解答

參考保哥的講解

看更多先前的回應...收起先前的回應...
player iT邦大師 1 級 ‧ 2013-02-20 15:35:50 檢舉

但是我在 Web.config 裡用
<membership defaultProvider="CityMembershipProvider">
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add name="CityMembershipProvider" type="CityMembershipProvider" requiresQuestionAndAnswer="false" />
</providers>
</membership>

偏偏就 ....
<add name="CityMembershipProvider" type="CityMembershipProvider" requiresQuestionAndAnswer="false" />
這行出錯

錯誤 1
型別 WebMatrix.WebData.PreApplicationStartCode 上應用程式的啟動前初始設定方法 Start 擲回例外狀況,錯誤訊息為: 這個方法不可在應用程式的啟動前初始設定階段呼叫。

當初把網站的帳號管理客制化
沒想到如今 WebForm 與 MVC4 整合
卡在這裡

有什麼好建議嗎?

class CityMembershipProvider 繼承 MembershipProvider

player iT邦大師 1 級 ‧ 2013-02-20 16:30:21 檢舉

在Web.config裡的<appSettings>區塊中加上
<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>

Web.config 是沒有錯誤訊息了
可是
卻跑出
錯誤 1 型別 'System.Data.Objects.ObjectContext' 是定義在未參考的組件中。您必須加入參考至組件 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'。 於 \webroot\App_Code\Models\AccountModels.cs

這是怎樣了
System.Data.Entity ? 我不是都裝 EntityFramework 5.0 了, 怎麼還會說找不到
System.Data.Objects.ObjectContext ?

外獅佬 iT邦大師 1 級 ‧ 2013-02-20 16:59:20 檢舉

它要的是version 4.0.0.0
ef5的版本號碼應該是4.2.x

player iT邦大師 1 級 ‧ 2013-02-20 18:09:44 檢舉

結果是 Web.config 寫錯了
補上 <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
就OK了

14
markshu
iT邦好手 1 級 ‧ 2013-02-20 00:08:45

App_Code是以webform的網站模式建立專案時,的特殊用途資料夾,若以專案模式建立時,也不會有那個資料夾,而.net mvc又是另一種建立專案的模式,是不同的架構,以model view controller的方式分層,若以webform的網站模式建立專案硬整到.net mvc專案裡面,雖然沒這樣做過,但是問題一定很多,也不會這樣做,因為往後要維護時,縱使編譯通過運作正常,那這個系統偶後維護起來只是更亂更費心,
一個做法是把原來的程式,以.net mvc的方式改寫到新的專案內,統一一個專案的開發模式,偶後系統擴充維護都較為便利,另一種方式就是不要整進去.net mvc,就是分別兩個獨立的網站,當.net mvc內的網頁中的link連結的方式,連結到web form的網頁,若是內部系統比較沒差,但若為開放的系統,那會有安全性的問題,.net mvc網站登入後,有安全控管,但web form的網站,就須想辦法做到當.net mvc登入後才能導向web form的網站,當然可以有很多方式解決,如導向的url帶入加密的驗證字串,web form的網站接收並解密驗證,也可以Request.UrlReffer判斷必須是哪個網址導向過來的...或是其他方式做到控管..

我要發表回答

立即登入回答