终于开始发布系统了,好高兴啊,现在将新闻发布的流程和发布过程中产生的错误都总结一下。
1 系统重新生成——>在web中点击发布
2 点击发布之后——出现下面的页面——点击新建——写上自己要给这个系统的命名
3 点击连接,出现下面的页面,发布方式选择“文件系统”,目标位置为我们将要发布系统的文件夹的物理地址
4 设置里面选择默认的“Release”就可以啦
5接下来,点击发布,我们可以看到自己的系统会显示发布成功。
6 接下来就要看IIS(internet 信息服务管理器),也是Web服务器。具体见他的用处和更多的解释见http://baike.haosou.com/doc/3171310-3342126.html。
右击网站——选择添加网站(这是我添加的是TEST),然后填写我们的网站名称,这里的应用成程序池是我们默认的DefaultAppPool.物理地址就是我们上面发布系统的文件夹的路径。然后填写我们的机房的IP号。同时为了防止发布系统的太多,端口堵住,更改一个新的端口。
7 给用户赋权限。我们点击“连接为”——选择特定用户——写上我们电脑的用户名和密码,点击确定。
8 点击测试设置——我们看到我们的身份验证和授权都已经是对勾啦。
9 这时候点击我们的网站,点击内容视图。然后在我们要打开的网页上面,右击——选择浏览,就可以看到我们发布的网页啦。
做到了以上几点,在正常情况下就可以成功浏览网站啦。
因为要在别人的电脑上,也要访问你的网站,所以需要关掉防火墙(控制面板——防火墙)
相对于第一种发布流程而言,第二种是比较简单的。首先声明,不需要在vs中发布。而是直接打开我们的IIS.
在打开我们的IIS后,直接点击右面的网站——增加网站,出现如下的页面!
也就是这次我们的物理地址不是发布后的地址,而是解决方案中的WEB层的地址。接下来就按照上面的方法6填写其他的部分,同时按照上面的继续就可以啦。
之所以我在后期的实践中出现了这种方法,是在发布廊坊一中系统的时候,总是出现如下的错误。我在代码中可以实现功能,但是发布后点击登录,总是不行,错误如下:
到底是为什么?为什么第一种方法就不行呢!想一想原因,我个人觉得应该是假如我用VS自带的发布进行,那么我在IIS中增加的网站的地址就是一个已经发布了的啦,发布过的就只有web层啦,也就是后面的引用什么的比较难出现,而在解决方案中,他们是在一个文件中,很好的引用啦!
由于我们都设置了错误页,当我们出错的时候直接会跳转到出错页,然后又跳转到主页。这样我们就看不到错误啦,所以在出错之前把这个错误页先注释掉,看看它到底报的错。
1
这个问题网上有好多好多的答案,具体请见链接http://blog.csdn.net/renpinghao/article/details/6423353
假如你的电脑是32位的操作系统,出现了上面的问题,可以看一下师姐的博客。http://blog.csdn.net/mazhaojuan/article/details/7660657#comments
我的是64位的操作系统,按照师姐博客中的操作,我的总是不成功。更换路径之后,执行成功。
当时我想,既然这里更新的是V2.0的,那么在IIS中,我是不是也该选择2.0的,上网查了知道假如我选择V2.0,那样的话模式就是经典,而不是我们默认的集成,页面如下:
但是仍然不成功,这个问题还在。(我觉得这个方案还是可行的,但是执行不成功,不知道为什么)
既然默认的是v4.0,同时默认的托管管道模式是集成,那么我们可以用一个设置,来启动一下32位的。选择我们的v4.0,右击——选择高级设置——启用32位应用程序为True,刚刚的那个问题就这样解决啦!
2 系统进入之后,点击添加新闻,却报出这个错误,我在vs中运行是没有问题的,为什么发布之后却出错呢?
我开始觉得肯定是路径的问题,因为牛腩老师讲的绝对路径、相对路径什么,我觉得我容易弄混啦,关于路径的讲解,参见师姐博客http://blog.csdn.net/wangdan199112/article/details/38110209
我看了看我的代码,没有错误啊。上网查了之后,更改了一下。成功啦。
上面是我又重新写的代码,下面是以前的代码,注销啦。CodeFile和CodeBehind到底有什么的区别和联系呢?
原来是cs文件没有编译进去。对于开发时,即 页面的逻辑代码 cs 文件存在的时候,下属两种写法都没有问题。
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>
但是部署到站点后,我们不会部署 cs 文件,这时候,后一种写法就会报找不到文件的错误了。除非你把 cs 也部署出去,否则就会报编译时错误,找不到文件。
详细的区别,请见http://www.360doc.com/content/11/1221/20/6856598_174058525.shtml
在发布过程中,还出现了其他的错误,比如没有把bll文件下面的dll控件AspNet.ScriptManager.jQuery.dll也发布过去。我只好复制粘贴到发布系统的bll下面啦,到底是哪里出了问题,我也不清楚。
发布是一个很小的环节,但是这几天一直在弄发布,整体上的收获还是很多的。后面的学习会更加精彩,同时总结也是学习的重要环节,让csdn更好的记录我们学习的收获和感受吧。