在第一讲使用delphi+intraweb进行微信开发1--微信平台接入中我们编写了一个简单的微信接口程序,这个程序我是用Stand Alone Server / Service 方式编译的程序,并且将端口设置成80进行的微信接口测试,但是实际使用时为了更好的服务器性能我们一般采用iis作为web服务器,以往的情况下iw需要编译成isapi部署在iis上。但是由于自打iis7以后iis对isapi的态度发生了很大变化(推荐使用fastcgi了)导致编译好的isapi很难在iis7.5上部署成功,反正我尝试多次均失败。而且支持isapi的虚拟主机在国内是基本看不到的,倒是一大把的.net、php等虚拟主机。这其实也是阻碍iw应用的最大障碍之一,放到以前就因为部署问题,我是绝对不会采用iw进行生产性开发的,自己玩玩倒还可以。但是,现在.net部署方式来了,呵呵,iw也可以拥抱虚拟主机了。
1、新建一个“library”类型的iw应用,这种类型就是iw以asp.net mvc方式部署到iis上的工程类型。
2、添加业务单元引用,编译,准备部署(呵呵,就这么简单)
打开intraweb的安装目录,里面有个aspx文件夹,把这个文件夹拷贝出来,例如拷贝到d:\aspx,打开拷贝的文件夹,里面的文件即为部署到.net应用所需的所有支持文件,其中需要修改的是web.config文件,把编译好的dll拷贝到这个目录,其它保持原样不动即可。
3、修改d:\aspx文件夹下面的web.config文件
如上,一共有4个地方需要修改,第一个是设置应用的虚拟目录,就是那个"wwwroot\aspx_test",如果是部署到web根目录下那么直接写成"value=wwwroot"即可,部署到虚拟主机上就不需要有虚拟目录,所以部署到虚拟主机上"value=wwwroot"。
第二个,设置library的存储路径,对于虚拟主机一般是不知道wwwroot的物理路径的,需要写个简单的aspx页面上传到虚拟主机上查看下wwwroot的物理路径,参考页面代码如下:
把这个代码存储成一个aspx文件并上传到虚拟主机上,打开这个页面即可获得wwwroot的物理路径。
取得的物理路径改写到“c:\web\features\featureslib.dll”上,后面的dll的名字就是刚刚编译出来的程序的名字。基本上这两步做完就可以了。剩下的第三步和第四步自己看看web.config中的注释吧,很简单,一般不需要设置。
3、使用FTP上传到虚拟主机开始测试应用
呵呵,简单吗?但是真的这么一帆风顺吗?No,小坑还是有的,第一要注意编译的程序的操作系统位数,如果虚拟主机的操作系统是64位的,而且虚拟主机添加的iis应用程序池不兼容32位应用,则iw必须使用64位编译。否则编译成32位也是可以的,但是具体是32位还是64位只能上传后试试看了。
另外,我使用的是阿里云虚拟主机,上传dll后必须要停止站点,再启动站点iw应用才可生效!切记。其它的虚拟主机也应该差不多。
再有注意.net虚拟主机的.net版本和池模式设置
能将iw应用部署在.net iis上非常重要,解决了部署问题才能让我们放心开发应用不是吗,所以请务必亲自尝试下,如果遇到什么问题可以在博客上留言。
最后附上iw官网上面的部署教程:intraweb官网aspx发布方式教程,我第一次就是严格按照教程来的,后来发现里面专门建立个用户什么的方式根本没必要,当然如果建立了也一定没问题,可是虚拟主机就肯定用不了了。
附上我云虚拟主机的部署文件供大家参考:下载
未完,待续。。。
下一次讲讲使用intraweb处理各种微信消息(文本、图片、语音、URL、地理位置信息等等)。