2014年5月15日星期四

Ubuntu(Linux) + mono + xsp4 + nginx +asp.net MVC3 部署 - 五加乘

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Ubuntu(Linux) + mono + xsp4 + nginx +asp.net MVC3 部署 - 五加乘  阅读原文»

折腾了一下,尝试用Linux,部署mvc3。

分别用过 centos 和 ubuntu ,用ubuntu是比较容易部署的。

操作步骤如下:

一、终端分别如下操作

sudo su ->输入密码

  

apt-get install nginx

  

apt-get install mono

  

apt-get install mono-fastcgi-server4

  

安装过程中会出一些缺少包的问题。具体要看实际情况安装

对pcre g++ zlib 都有依赖

sudo apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev g++

二、nginx 配置

default

sudo vim /etc/nginx/sites-available/default

更改成

server {
listen
80;
server_name localhost;
root
/var/www/;

location
/ {
root
/var/www/;
index index.html index.htm index.aspx
default.aspx;
fastcgi_index
/Site;
fastcgi_pass
127.0.0.1:8000;
include
/etc/nginx/fastcgi_params;
}
}

启动路径改成 var/www,所以应该创建一个www的文件夹

sudo mkdir /var/www

建议更改一下权限吧,因为这个文件夹需要共享,进行远程部署

sudo chmod 777 /var/www
fastcgi_params
sudo vim /etc/nginx/fastcgi_params

最后插入以下两行

fastcgi_param PATH_INFO "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

三、启动服务

通过共享,部署mvc3站点到www上,再启动服务

sudo /etc/init.d/nginx start

sudo fastcgi
-mono-server4 /applications=/:/var/www/ /socket=tcp:127.0.0.1:8000

按照以上操作,应该已经部署完成了。

但,还有一些部署问题,需要导入mvc的dll支持,导入到站点bin文件夹中

System.Data.dll
System.Web.ApplicationServices.dll
System.Web.DynamicData.dll
System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.Routing.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll

还有,数据库读取问题,使用的是mysql,需要导入

MySql.Data.dll

进入web.config,在<system.web>下插入

<globalization culture="en-us" enableClientBasedCulture="false"/>

好了一切完成。分享一下自己的部署经验,希望对大家有所帮助,祝你们部署一切顺利o(∩_∩)o


本文链接:Ubuntu(Linux) + mono + xsp4 + nginx +asp.net MVC3 部署,转载请注明。

大数问题 - panpannju  阅读原文»

大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的数值。

大数问题主要有以下四种:

==================================

1. 大数相加

2. 大数相乘

3. 大数阶乘

4. 大数幂乘

==================================

下面我们一起解决这四种问题。

Problem 1 大数相加

一般的int,long等类型无法精确表达数值。

我们就考虑以字符串的形式读入这两个数,利用vector来表示这两个数值,

代码:

1 string s1, s2;
2 cin>>s1>>s2;
3 int i;
4 vector<int> v1(s1.size()), v2(s2.size());
5 for(i = 0; i < s1.size(); i++)
6 {
7 v1 = s1 - '0';
8 }
9 for(i = 0; i < s2.size(); i++)
10 {
11 v2 = s2 - '0';
12 }

利用vector的空间可以无限扩展,因此我们利用vector来模拟计算这两个数的相加。

根据加法规则我们可以知道,个位与个位相加,十位与十位相加...

代码:

1 vector<int> f(vector<int> v1, vector<int> v2)
2 {
    #将两个数字的位置倒过来,个位数字放在最前面,例如:123,倒过来即为321
3 reverse(v1.begin(),v1.end());
4 reverse(v2.begin(),v2.end());
5 int maxsize = v1.size();
    #比较两个数字的位数,找到最长的
6 if(v2.size() > maxsize)
7 {
8 maxsize = v2.size();
9 }
10 vector<int> v3(maxsize);
    #记录每一位计算的进位
11 int carry = 0;
12 int i;
13 for(int i = 0; i < maxsize; i++)
14 {
15 int t = carry;
16 if(i < v1.size())
17 t = t + v1;
18 if(i < v2.size())
19 t = t + v2;
      #当相同位置上的数字相加超过10时,应该向高位进位
20 carry = t / 10;
21 v3 = t % 10;
22 }
    #若最高位相加之后,需要进位,那么我们需要扩展vector
23 if(carry > 0)
24 v3.push_back(carry);
    #最后将vector倒置,可以得到最终的相加结果
25 reverse(v3.begin(),v3.end());
26 return v3;
27 }

Problem 2 大数相乘

例如:

位置: 4  3  2  1  0

数值1:    4  3  2

数值2:    * 4 5

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

结果:   20 15  10

     16  12  8

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

    16  32  23  10

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

  1 9   4   4  0

从上面的例子中我们可以看出位置i和位置j的结果放在i+j的位置,最后再依次进行进位操作。

代码:

这里要注意初始结果申请的空间,最后在输出的时候需要进行处理。

1 vector<int> m(vector<int> v1, vector<int> v2)
2 {
3 reverse(v1.begin(),v1.end());
4 reverse(v2.begin(),v2.end());
5 int maxsize = v1.size();
6 if(v2.size() > maxsize)
7 maxsize = v2.size();
8 maxsize *= 2;
9 vector<int> v3(maxsize, 0);

没有评论:

发表评论