Host an ASP.NET Site Web in IIS7 with Postgresql

做了.net这么久,终于要做点ASP.NET的东西了。开始这份.NET的工作这么久,其实我.NET一点都没学过,纯自学,基本靠GOOGLE,好现在开始建站,我上司说自己也没做过,好吧,自己弄吧。

 

 

首先,服务器是已经准备好的,公司在外面租的服务器吧,装的是IIS7,用的数据库是Postgresql(这我刚开始并不知道,以为也是SQL SERVER), 还有个FTP用来传东西。当然这时候上司一顿网络配置,因为服务器在外网,所以什么CMD用管理员身份运行ROUTE ADD之类的,就是把连服务器时的IP地址映射到公司路由的IP地址,route print查看结果。(这我不太懂,一阵凌乱。看来以后有机会还得补补网络的知识,哎 真对不起我们学校在网络方面是法国数一数二的学校,,没办法,谁让自己不感兴趣呢。)还有MSTSC远程登录服务器时用的是那边的DOMAIN和用户名之类。 先不管,先弄个“Hello World!”玩玩。新建一个ASP.NET Site Web Application, 刚开始还花了点时间研究了一下 到底是用SITE WEB, 还是 SITE WEB APP PROJECT, 还是SITE WEB MVC。 最后选择了SITE WEB APP PROJECT, 觉得这个是最适合我这种做过几个WINDOWS FORM的ASP.NET初学者的。然后就是很简单的HELLO WORLD!在本地机子上运行成功。可是pubish到服务器上不能运行。试了一些办法和GOOGLE的强大帮助下,只找到了一个妥协的办法,因为还是不知道为什么,就是删除web.config文件开头的段,说是默认的配置是有问题的。现在还是没有搞明白为什么,好吧,在公司这么个功利的环境没有那么时间精力和气氛去研究为什么了,就先这样吧。然后网页在服务器运行成功。

 

 

这时候,我还以为这配置的活还是蛮轻松的,后面来的就头大了。做完HELLO WORLD,当然要做点稍微复杂一点点,和公司网站有关一点的网页了。好吧来个LOGIN PAGE吧。ASP.NET很强大,直接有个LOGIN CONTROL,牛,直接拉过来用。然后看到一个ASP.NET ADMIN TOOL,点开加了个USER, ROLE, 和REGLE。简单,本机测试成功。然后PUBLISH到服务器。所有在ADMIN TOOL里面的设置全部不行。就像这些设置完全没有传到服务器一样。继续GOOGLE,原来这些设置都是在数据库里的,要让这些设置能让服务器用就得配置一下,让程序连到数据库,在本机行应该是Visual Studio自带的SQL SERVER EXPRESS的作用吧。查了好多,最后确定应该是用 Visual Studio Commande Prompt, 运行aspnet_regsql来配置SQL SERVER来控制网页的membership. 这还比较简单,一步步NEXT就是了,当中遇到了用个数据库账户权限不够,,不能CREATE TABLE,到数据库把这个账户改到db_ower的ROLE。可是怎么把这个数据库和我的这个程序相连呢。没看到这个选项啊。又找了好些资料,原来是要在web.config里面加 开设置ROLE的管理,和来管理user。好,终于配置到平时常用的SQL SERVER,在本地测试,新建用户什么的,数据库直接接收到,恩应该是配置成功吧。PUBLISH到服务器,连不到数据库,我猜应该是数据库在公司的,服务器在外网,服务器没有权限访问数据库巴,问上司,得到答复 是这样的,,,囧,上司说,不是服务器有数据库吗,Postgresql。什么玩样啊,好不容把SQL SERVER的配置弄的差不多了 原来完全是另一个数据库。

 

 

好吧,又得重新研究了,不过还好,到这里,基本ASP.NET的MEMBERSHIP配置大概是清楚了。可是第一步就有问题了,原来数据库要连到.NET要有个PROVIDER,不是随便相连就连得。找个一个Npgsql, 专门给Postgresql对 .NET的PROVIDER。好吧下来,用起来也很简单,就是把Npgsql.DLL 和 MOMO.SECURITY.DLL两个文件放到程序的BIN文件里然后到PROJECT的references里加一下,就可以用了。其实有了这个就是.NET可以连接到POSTGRESQL了,应该还不能用来管理MEMBERSHIP吧,这我觉得SQL SERVER不用其他什么东西就能实现,现在需要的是像ASPNET_REGSQL那样的功能,在数据库新建一些table来管理MEMBERSHIP。继续GOOGLE。在网上找到两个 PostgresqlMembershipProvider 和 PostgresqlRoleProvider 的C#原文件。看完以后稍微对ASP.NET的MEMEBRSHIP管理和LOGIN控件的原理有个大概的认识。然后不管,放到PROJECT中去。然后修改web.config加入 和并在本地的Postgresql新建了三个table来管理user ,role和usersinroles。本地运行测试成功。然后到服务器的Postgresql新建table然后publish网页到服务器。运行成功。

 

 

后续吧,ASP.NET ADMIN TOOL估计最好不要用了,改web.config比较靠谱。现在ADMIN TOOL里面的provider 测试还是连不到POSTGRESQL,不过user role的新建 修改还是可以练到的。然后一个问题是新建的regle有没有放到数据库中。本地测试这些regle是有效的,可是看数据库就三个table哪来管理regle啊,web.config又没有改动。所以我觉得这些regle又存到本地的SQL SERVER EXPRESS去了 等于没用。最后还有本地数据库和服务器数据库的同步问题。这个应该不是特别难,可能会有权限问题,大不了手动慢慢改呗,就是测试时和实际时的区别,麻烦了点是的,不过不是什么技术问题。 终结。这是第一次正式的ASP.NET建站啊 连数据库啊之类的。以前在学校做过一个PROJECT是 PHP APPACH和MYSQL,不过当时纯打酱油了。。基本算是配置完了,还是蛮开心的~~ 所以才会上来写篇博客嘛 哈哈~恩 终结就是对这玩样有了一个基本的认识。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值