部署也就意味着一个DEMO或者系统即将完工,但是千万不要小看部署,测试系统和生产系统往往会有很大的差别,也许一个权限问题,也许细节问题就会让人抓耳挠腮,折磨的半死不活,这些以前就遇到过,但是那也是以前的事情了。
因为工作的关系,好久没有真正的部署过东西了,还记得上次在自己的电脑上部署了一个Silverlight的小应用,当时在自己的电脑上,很完美,但是到了服务器上,数据库直接就访问不了了,最后排查才知道服务器没有安装访问ACCESS的组件。看来一个细节真的会要人命,这也从侧面来说,自己的学艺不精,其实在做一件事情的时候,就应该考虑的可能会有那些因素发生,有那些因素导致问题,做好万全之策。
经验才是生活中的智者,慢慢的将一些东西不经意间渗入人的大脑,教会一个人如何去思考问题,如何去解决问题,也许正因为这样,有经验的人做事的时候会得心应手,游刃有余。经验中包括的是工具的如何使用,遇到问题是的应对之策。曾经告诉自己人与人的差别在于谁能在最短的时间内解决所出现的问题,简简单单的一句话,要做到这样谈何容易,不仅仅是学富五车,更重要的是能学以致用,举一反三或闻一知十,也许要成为这样的人必须经过一番磨砺,正所谓不经一番寒彻骨,那得梅花扑鼻香。
我喜欢分享东西,也喜欢总结东西,更喜欢将自己的所感所得记录下来,尤其在遇到问题,最后有了答案之后,我更喜欢将这些记录下来,我自知自己天生愚钝,没有过目不忘的本领,所以将这些东西记录下来,以备日后之需,所谓好记性不如烂笔头,这算是自欺欺人罢了,因为我相信有的人真的可以过目不忘,而且是永久永久,而我不属于这些人。
今天在自己的电脑上写了一个WebService,里面通过SqlConnection 访问的是SQL Server数据库,在自己的电脑上debug的时候,结果是预期的,当部署在IIS下的时候,却出了问题,还好自己能在出问题的时候,去跟踪代码,终于跟踪到“'IIS APPPOOL\DefaultAppPool'”错误,突然发现一个系统中日志是多么的重要,在任何可能出现问题的地方如果能有详细的日志记录,那么肯定会事半功倍的,数据库这玩意,我当时就觉得是权限什么的问题,因为google上不去,最近百度成了我使用的最频繁的工具,原来是一个NetworkService权限的问题,感谢分享的人。
这里给出答案:
第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
我的电脑-->右键-->管理-->本地用户和组
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。
第二步 在企业管理器中加入NetWord Service用户
打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键-->选择“新建登录”-->常规---->搜索---->高级----->立即查找----->找到:NETWORK SERVICE--->点击确定,此时返回到新建上面 登录名 文本中已有:NT AUTHORITY\NETWORK SERVICE
接着------->左边导航:服务器角色勾选sysadmin-----> 左边导航:用户映射---->勾选要连接的数据库或者所有数据库
到此为止。
第二个问题是我今天在访问SOE的时候,使用的esri.request的时候这个方法默认的是使用get,代理我也设置了,奇怪的就是我的前端也部署了,监听网络的时候也可以看到地址,但就是报错,我将监听到的地址复制到浏览器端,结果都可以看出来,折腾了半天不知道为什么,最后将localhost改成ip,问题就在这无意之中被搞定了。
这些算是今天的问题,也算收获吧!