Jexus@宇内(273766940) 9:09:02

linux上的文件名和文件路径是大小写敏感的。

Jexus@宇内(273766940) 9:10:11

在win上,你文件名是 Login.aspx,可以用login.aspx访问,但在linux上,你用login.aspx访问就会找不到文件。

肖坤(276953703) 9:11:32

也就是只要是文件名或路径大小写匹配就可以了。这也是linux系统的原因

Jexus@宇内(273766940) 9:12:39

在迁移中,还要注意操作系统API调用方面的问题,如果你的asp.net程序中用dllmport访问了windows的系统api,那么,这种调用在linux上是无法运行的,原因,linux上根本就没有对应的so.

Jexus@宇内(273766940) 9:14:48

即,跨平台的应用,不能有操作系统依赖性。

Jexus@宇内(273766940) 9:17:43

第三,mono的版本号以及类库的版本号与.NET的版本号是有区别的。比如,mono3.2,已经带了.NET2/3.5/4/4.5的类库,带了mvc/mvc2/mvc3的类库,但是并没有带MVC4的类库,带有EF6的类库,但是没有带EF5的类库。这时,如果用VS开发的应用,没有注意到类库版本的区别,也会出问题,因为,VS的开发目标是windows,而不是linux。

小白(89921185) 9:20:01

低一个版本用好些

Jexus@宇内(273766940) 9:20:13

其实,由于类库版本的不对等,才是一个比较实在的拦路虎。很多人喜欢用最新的技术,比如MVC4,而mono并没有带MVC4的库,喜欢用EF,但VS上是EF5而不是mono上的EF6。

^O^清风明月(99687261) 9:20:24

随便说说,EF5是绝对不可用,EF6是“将要”支持

肖坤(276953703) 9:20:59

我喜欢用Nhibernate

Jexus@宇内(273766940) 9:21:46

很多朋友,而且是ASP.NET初学者,外加初学linux,竟然一上手就是MVC4+EF,这不得不说是自己给自己找麻烦!

Dylan_deng() 9:21:54

EF是什么

Jexus@宇内(273766940) 9:22:14

自己做不了,还说mono不得力。

广州-血开阳(764392008) 9:22:25

一个orm

肖坤(276953703) 9:22:39

这不是mono的问题,而是新手的问题

Jexus@宇内(273766940) 9:22:41

真正的老手,是不会这么玩的。

Jexus@宇内(273766940) 9:23:53

初学ASP.NET+初学LINUX,敢直接上最新的技术框架,这不能不说是一种失败!

小白(89921185) 9:24:14

我现在都是3.5为主 偶尔4.0

Jexus@宇内(273766940) 9:26:16

mono3.2.1,无需添加其它dll,直接做mvc3/razor/asp.net4,是没有问题的。当然,也不要用EF。除非对EF6很熟外加VS支持EF6。

肖坤(276953703) 9:30:07

unix上都一样的吧?

Jexus@宇内(273766940) 9:31:56

Jexus@宇内(273766940) 9:32:12

你可以简单地把unix看成linux。

肖坤(276953703) 9:33:01

改天找个机器做实验

Jexus@宇内(273766940) 9:36:51

呵呵,很多人都在正式投入生产环节了,你才开始做实验。

肖坤(276953703) 9:37:46

看来我比较落后了

kissbaby(16344438) 10:29:02

大家好,有个问题请教一下,我有个站点路径包含空格,配置文件中root部分应该如何写,比方我的路径是在/var/www/my site,我写成root=/ /var/www/my site后发现无法加载里面的默认索引页,把目录和配置的空格去掉则正常加载了,是不是root不支持空格,希望可以得到解答

Jexus@宇内(273766940) 10:29:33

不支持空格

Jexus@宇内(273766940) 10:30:01

路径不支持空格

kissbaby(16344438) 10:30:12

那中文支持吗

Jexus@宇内(273766940) 10:31:03

中文支持,不过,要想支持中文够麻烦的,比如你需要安装字符集以及修改jexus启动文件。

kissbaby(16344438) 10:32:09

了解,那么空格的支持可以修改什么文件来使之支持吗

Jexus@宇内(273766940) 10:32:20

关于中文路径文件名等的支持,请访问 www.linuxdot.net

Jexus@宇内(273766940) 10:32:39

修改也不支持。

kissbaby(16344438) 10:33:48

那真可惜了,如果能支持类似root=/ '/var/www/my site'这样的写法就好了

Jexus@宇内(273766940) 10:34:10

在linux上,为了不给自己找麻烦,不建议用中文文件名、不建议大小写混用,也不要在路径上加空格。

kissbaby(16344438) 10:35:40

刚好以前有个项目是在原来WIN7系统上的,直接挂载在UBUNTU上,所以也懒得改路径,刚好这路径是中文和空格全有,看来只能改路径了

Jexus@宇内(273766940) 10:35:54

大小写混用,路径有空格,这些都是windows的习惯。因为,比如大小写,windows根本就不理睬它

DataAngel(996421165) 10:36:10

yes

DataAngel(996421165) 10:36:15

大小写注意

kissbaby(16344438) 10:36:16

谢谢流云兄的详解了

DataAngel(996421165) 10:36:18

空格注意

Jexus@宇内(273766940) 10:36:24

不客气。

Jexus@宇内(273766940) 10:37:45

在linux系统上,数十万文件,你很难找到有大小写混用的,也很难找到文件名或路径上有空格的,他们都是清一色的小写。

kissbaby(16344438) 10:37:48

嗯,现在慢慢转型到LINUX中,有些习惯正在慢慢适应中。。。不过感觉UBUNTU还是蛮给力的,基本都不想用WIN系统了

kissbaby(16344438) 10:40:12

另外,我感觉装MONO环境的部分似乎可以直接使用产UBUNTU的软件中心,下载一个叫MONODEVELOP的应用就好了,这样就不用输入太多的命令行了,省事多了,不知有没有理解错

Jexus@宇内(273766940) 10:40:43

jexus是支持大小写混用的,不过,大小写混用的弊病远大小收获。

Jexus@宇内(273766940) 10:41:20

MONODEVELOP是开发用的。

kissbaby(16344438) 10:42:07

空格或中文还能理解,大小写为什么会有这么大的弊端呢,愿闻其详

Jexus@宇内(273766940) 10:43:38

在linux中,Index.aspx index.aspx是两个不同文件,那么,你说,在访问index.aspx时,系统应该以哪个文件为准?

Jexus@宇内(273766940) 10:44:19

明明是两个不同文件,一旦不分大小写,系统就乱套了,因为,你叫它不分大小写,所以它就分不清用哪一个了。

Jexus@宇内(273766940) 10:45:27

在进一步的匹配过程中,系统会用不同的大小写尝试,这时,会浪费很多资源。

kissbaby(16344438) 10:49:23

其实区分大小写挺好,我倒是乐意index和Index是不一样的文件

Jexus@宇内(273766940) 10:50:51

同样,如果访问者打错一个字母大小写,也是极为麻烦的事

Jexus@宇内(273766940) 10:51:19

login.aspx 别人可能好记,LogIn.Aspx,就是与用户过不去!

Jexus@宇内(273766940) 10:51:36

这是折磨用户。

kissbaby(16344438) 10:52:15

那是,看来这倒是要注意了,我旧项目里还真的多数是这种驼峰命名方式,看来全得改了

Jexus@宇内(273766940) 10:58:18

入乡随俗,最简办法就是不路是路径还是文件名,清一色小写。

Jexus@宇内(273766940) 10:58:56

不要给自己找麻烦,也不要给用户找麻烦。

05-11 22:42