国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

VS2013中的MVC5模板部署到mono上的艱辛歷程(附代碼)

開發(fā) 后端
在Xamarin.Studio創(chuàng)建的asp.net項(xiàng)目,部署過程非常順利,沒有遇到什么問題;但在VS2013中創(chuàng)建的asp.net項(xiàng)目,部署過程會(huì)有一些波折。現(xiàn)在想想,原因是Xamarin.Studio中的項(xiàng)目模板比較簡(jiǎn)單,只是顯示幾個(gè)文字,并沒有用到mvc5中的東西。

部署環(huán)境:CentOS7 + Mono 3.10 + Jexus 5.6

在Xamarin.Studio創(chuàng)建的asp.net項(xiàng)目,部署過程非常順利,沒有遇到什么問題;但在VS2013中創(chuàng)建的asp.net項(xiàng)目,部署過程會(huì)有一些波折。現(xiàn)在想想,原因是Xamarin.Studio中的項(xiàng)目模板比較簡(jiǎn)單,只是顯示幾個(gè)文字,并沒有用到mvc5中的東西。

vs2013新建一個(gè)asp.net的項(xiàng)目(目標(biāo)框架是.net4.5),選擇mvc,并且更改身份驗(yàn)證為不適用身份驗(yàn)證。

編譯,并發(fā)布到j(luò)exus默認(rèn)站點(diǎn)指向的目錄,訪問之。報(bào)出的錯(cuò)誤信息如下圖。

根據(jù)異常堆棧信息,應(yīng)該是調(diào)用HtmlHelper的ActionLink方法的時(shí)候,Helper友用到了RouteCollectionExtention的獲取虛擬路徑方法,問題就處在這個(gè)方法中。

看提示應(yīng)該是RouteCollection少了AppendTrailingSlash這個(gè)屬性(bool,用來控制在轉(zhuǎn)換成虛擬路徑的時(shí)候是否在最后添加“/”)。

其實(shí),Asp.net 路由框架的代碼位于System.web.dll中,System.Web.Routing.dll是個(gè)沒有代碼的空程序集。RouteCollectionExtention是mvc中為了方便使用而對(duì)路由框架中RouteCollection的一系列的擴(kuò)展方法。

打開mvc的RouteCollectionExtention源碼(http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/RouteCollectionExtensions.cs),發(fā)現(xiàn)了對(duì)RouteCollection的AppendTrailingSlash調(diào)用。

對(duì)比下.net和mono中的RouteCollection類,發(fā)現(xiàn)mono中沒有實(shí)現(xiàn)AppendTrailingSlash這個(gè)屬性,同樣也沒有LowercaseUrls這個(gè)屬性(代碼地址分別是,.net:http://referencesource.microsoft.com/#System.Web/xsp/system/Web/Routing/RouteCollection.cs#8f054052ef9931ac#references,mono:https://github.com/mono/mono/blob/master/mcs/class/System.Web.Routing/System.Web.Routing/RouteCollection.cs)。

再看一下mono中RouteCollection這個(gè)文件的最后更新時(shí)間,++,兩年前,好吧。

因?yàn)閷傩詿o法像擴(kuò)展方法一樣擴(kuò)展,而且路由中又沒有針對(duì)RouteCollection進(jìn)行抽象,都是直接引用的RouteCollection,這個(gè)問題我暫時(shí)沒招了。翻遍了google,只有問題,沒有答案。

只能先繞過去了,找到View/Share/_Layout.cshtml,注釋掉調(diào)用Html.ActionLink的代碼,重新發(fā)布。

這時(shí)候可以正常訪問,但頁面的樣式是亂的,在瀏覽器的開發(fā)人員工具中可以看到如下404信息,原因肯定是bundle框架并沒有起作用。

解決辦法是,找到bin文件夾刪除Microsoft.Web.Infrastructure.dll,因?yàn)閙ono在lib中有關(guān)于這個(gè)程序集的自己的實(shí)現(xiàn),為了開發(fā)和部署方便,也可以直接把Microsoft.Web.Infrastructure.dll設(shè)置為不復(fù)制到本地。

再次訪問,可以看到清新的Bootstrap界面了,只是菜單上哪幾個(gè)倒霉的鏈接被注釋掉了。

以上可知,mono目前對(duì)mvc5的兼容性還不夠好,可能在等vNext不屑于兼容mvc5了吧。

MVC5在mono上顯示幾個(gè)文字還是沒有問題的,但HtmlHelper某些方法因?yàn)殚g接調(diào)用了mono沒有實(shí)現(xiàn)的路由框架的屬性,所以無法使用。

RouteCollectionExtention中獲取虛擬路徑的方法是非常重要而且使用頻繁的,為了這個(gè),只能棄用mvc5了,將其降級(jí)為mvc4了。

降級(jí)的過程是一部血淚史,有血,有淚,有屎。mvc相關(guān)的nuget包主要有:Microsoft Asp.Net MVC、Microsoft Asp.net Web Pages 、Microsoft Asp.net Razor,比較坑爹的是這三個(gè)包的不同版本之間不一定兼容。本來想是直接在NuGet中引入MVC4就好,但是遇到了各種問題,不是這個(gè)包少個(gè)方法就是那個(gè)包少個(gè)方法,最終試了很多種組合也沒有成功。

最后不得已才用了一個(gè)投機(jī)取巧的方法,先創(chuàng)建一個(gè)mvc4的項(xiàng)目(在vs2013中的創(chuàng)建項(xiàng)目框中展開web選中vs2012就可以看到mvc4的模板),然后把vs自動(dòng)創(chuàng)建的mvc4、webPage、razor包,復(fù)制到原解決方案的package目錄下。

在NuGet中依次卸載MVC5、WebPages、Razor,然后添加對(duì)上面復(fù)制過來的三個(gè)包中的程序集的引用,這時(shí)在vs2013中編譯運(yùn)行會(huì)遇到下面的異常:

打開View文件夾下的Web.config,configSections中依然保留著對(duì)最初的那幾個(gè)程序集的引用,把mvc4項(xiàng)目中的這段配置復(fù)制過來,編譯運(yùn)行,又看到下面的異常:

找不到System.Web.Helpers命名空間,可以我明明引用了System.Web.Helpers這個(gè)程序集啊,但bin中竟然沒有System.Web.Helpers.dll。仔細(xì)查看,原來是沒有設(shè)置為復(fù)制到本地,相應(yīng)的檢查一下上面手動(dòng)添加的幾個(gè)引用是否都設(shè)置了復(fù)制到本地,再次編譯運(yùn)行,在windows下已經(jīng)可以正常瀏覽了。

把上面layout.cshtml中被注釋掉的調(diào)用Html.ActionLink的代碼解開注釋。

編譯運(yùn)行,OK;部署到CentOS上,在bin文件夾中刪除Microsoft.Web.Infrastructure.dll,重啟jexus,瀏覽之,正常顯示,點(diǎn)擊菜單上通過HtmlHelper生成的幾個(gè)連接,Perfect!!! 倒霉的菜單又回來了!!!

最終的代碼在這里

原文出自:http://www.cnblogs.com/FuzhePan/p/4053455.html

責(zé)任編輯:林師授 來源: 潘復(fù)哲的博客
相關(guān)推薦

2013-11-13 15:00:30

Visual StudMVC5ASP.NET

2010-10-09 08:41:40

Mono 2.8

2014-08-26 09:22:40

ASP.NET MVCRouting

2013-11-14 09:24:13

Visual Stud微軟Web開發(fā)

2014-01-07 14:19:57

CES2014可穿戴設(shè)備智能家居

2009-09-07 16:19:50

CCNA認(rèn)證

2009-12-04 10:43:53

VS部署

2011-01-19 11:17:36

2011-01-27 09:19:14

Mono開發(fā)

2025-03-27 03:50:00

DeepSeekLLMLLaMA

2012-04-13 09:42:34

2011-04-08 11:03:21

VS2010

2011-10-03 20:23:34

2010-09-30 09:09:56

HTML 5VS2010

2009-06-19 11:28:45

2024-12-30 09:55:44

2024-04-26 08:17:09

GoGoogle項(xiàng)目

2017-05-23 16:36:06

程序程序員

2022-07-01 08:26:22

區(qū)塊鏈去中心化以太坊

2012-10-10 09:47:30

Office 1.0Office 2013
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩精品一区第一页| 秋霞电影一区二区| 色视频欧美一区二区三区| 精品久久久久亚洲| 日韩第二十一页| 欧美性大战久久久久久久| 国产日韩成人内射视频 | aaa欧美色吧激情视频| 91性高湖久久久久久久久_久久99| 欧美va视频| 欧美一区二区三区喷汁尤物| 女同互忝互慰dv毛片观看| 国产成人在线视频免费播放| 久久99精品久久久久子伦| 要久久爱电视剧全集完整观看 | 伊人发布在线| 久久精品免费在线观看| 日韩免费电影一区二区| 亚洲最新色图| 日本人成精品视频在线| 亚洲人体在线| 亚洲欧美精品一区| 超碰免费在线播放| 欧美天天综合色影久久精品| 向日葵污视频在线观看| 国产乱对白刺激视频不卡| 精品一区久久久久久| 欧美亚洲国产精品久久| 久久久久久久色| 欧美亚洲人成在线| 亚洲视频在线看| 55av亚洲| 欧美日韩一区二区三区视频| 一级视频在线观看| 欧美日本不卡视频| 麻豆蜜桃在线| 久久精品视频99| 91精品国产乱码久久久竹菊| 国产成一区二区| 卡通动漫国产精品| 97成人精品区在线播放| 日韩黄色网络| 欧美一区二区三区四区在线| 台湾亚洲精品一区二区tv| 国产97免费视| 亚洲欧美网站在线观看| 91免费在线观看网站| 亚洲精品一二三区区别| 91精品婷婷国产综合久久蝌蚪| 久久精品亚洲人成影院| 91精品国产高清久久久久久91裸体| 综合激情视频| 91久久精品国产91久久性色tv| 亚洲午夜精品一区 二区 三区| www.久久爱.cn| 日韩成人一级片| 青青青在线观看视频| 成人性生交大合| 国产精品天天av精麻传媒| 国产精品美女www爽爽爽| av线上观看| 欧美香蕉大胸在线视频观看| 国产在线观看黄| 欧美不卡123| 日韩成人在线电影| 国产精品∨欧美精品v日韩精品| 亚洲女娇小黑人粗硬| 国产精品www网站| 99综合精品| 国内少妇毛片视频| 亚洲视频每日更新| 欧美午夜电影一区二区三区| 亚洲欧美日韩一区二区在线| 亚洲午夜免费| 444亚洲人体| 国产综合久久久久影院| 欧美日韩亚洲一二三| 亚洲高清免费视频| а√天堂官网中文在线| 爽爽爽爽爽爽爽成人免费观看| 亚洲电影男人天堂| 国产一区二区不卡视频| 日韩不卡一区二区| 人妻少妇精品无码专区二区| 亚洲精品乱码久久久久久黑人| av基地在线| 日韩一区在线视频| 91一区二区| 日韩人妻一区二区三区蜜桃视频| 亚洲乱码国产乱码精品精可以看 | 欧洲福利电影| 日韩电影在线播放| 国产视频一区二区三区在线观看| 在线一区观看| 亚洲国产欧美一区二区三区同亚洲| 国产精品日本一区二区不卡视频 | 日本在线xxx| 午夜精品123| 亚洲电影观看| 国产精品视频男人的天堂| 蜜臀av一区二区在线免费观看 | 国产精品剧情在线亚洲| 在线日本中文字幕| 美女视频久久黄| 国产亚洲激情| 国产精品人人爽人人爽| 在线播放中文字幕一区| 国产精品调教| 中文字幕一区二区三区5566| 亚洲一区免费在线观看| 日本成人伦理电影| 精品一区二区三区国产| 色综合久久久久综合99| 日韩欧美1区| 久久综合色播| 国自产精品手机在线观看视频| 鲁一鲁一鲁一鲁一色| 亚洲www在线| 欧美亚洲高清一区二区三区不卡| 日本h片在线看| 国内成人精品一区| 天堂精品中文字幕在线| 在线视频99| 九九热精品视频| 蜜臀av性久久久久av蜜臀妖精| 在线国产视频观看| 欧美激情精品久久久久久久变态 | 欧美日韩国产a| 欧美人与拘性视交免费看| 蜜桃网站在线观看| 欧美日韩国产片| 久久一区91| 欧美1819sex性处18免费| 夜夜嗨av一区二区三区免费区 | 国产免费毛卡片| 亚洲电影av在线| 一本一道久久综合狠狠老精东影业| 国产九色porn网址| 久热国产精品视频| 久久99精品国产.久久久久久 | 一区二区三区四区视频免费观看| 亚洲电影一二三区| 欧美男男青年gay1069videost| 欧美精选视频在线观看| 无码日韩人妻精品久久蜜桃| 精品亚洲男同gayvideo网站| 国产欧美二区| 在线观看入口黄最新永久免费国产| 久久精品99久久香蕉国产色戒 | 国产裸体写真av一区二区| 国产精品美女久久久久久久| 精品一区91| 给我免费播放片在线观看| 色一情一乱一乱一91av| 99久久影视| 免费看男男www网站入口在线| 国产一区二区丝袜| 九九热精品在线| 成人写真视频| 青青草超碰在线| 免费精品视频一区二区三区| 日韩福利视频在线观看| 2020国产精品| 成人久久久久| 成人在线网址| 99色这里只有精品| 57pao成人国产永久免费| 调教+趴+乳夹+国产+精品| 亚洲自啪免费| 另类一区二区| 在线香蕉视频| 中文字幕一区二区三区四区五区六区| 日韩在线观看免费av| 亚洲日本丝袜连裤袜办公室| 狠色狠色综合久久| av成人免费| 一二三四在线视频观看社区| 亚洲人体一区| 欧美一区二区.| 欧美一区日韩一区| 中文字幕av一区二区三区免费看| 午夜电影亚洲| 色综合久久久| 成年人视频在线看| 久久精品免费一区二区| 国产福利久久精品| 久久福利视频网| 欧美片网站yy| 国产精品网站导航| 日精品一区二区三区| 欧美亚洲色图校园春色| 日日夜夜天天综合入口| 黄页在线播放| 天堂v在线视频| 成人中文字幕+乱码+中文字幕| 日韩精品视频在线播放| 亚洲一区二区三区视频在线播放| 激情六月婷婷久久| 午夜激情久久| 国产精品日韩精品在线播放|