您的位置:首页 > 运维架构 > 网站架构

发布网站 IIS部署网站

2015-06-01 00:00 681 查看

怎么发布一个网站

发布一个网站不是在项目解决方案上点,也不是在类库上点。而是你要发布哪个web项目就在哪里点



然后再配置文件那里 “新建自定义配置文件” ,这个配置文件是什么概念呢?我这个发布当中,待会会做一些设置,这些设置会帮你记录到一个文件当中,然后下次你就按照原本的设置继续走就行了;

这个配置文件名称我们可以谁便起的,我这里取名叫Myweb



在连接那里选择“发布方法,我们一般选“文件系统” 当然你也可选择其他,比如选择FTP,可以将它发布到一个服务器上。



目标位置,很多时候我们会在C盘下建立一个文件夹,然后将网址发布到这个文件夹中就可以了。名字随便取;或者就直接在你的解决方案下新建一个文件,然后将网址发布到这个文件中都可以。

我这里就直接在项目解决方案下建立一个Publish的文件夹。然后将网址发布到这里

注意:这个目标位置是可以写相对路径的。(相对路径好一些 )



然后再设置栏的配置中选择”Release“ 在文件发布选项中勾选发布前删除所有的现有文件(因为如果只之前发布过,现在重新发布一次,那就需要将之前发布的删除)

(最好将这三个按钮都勾选上)然后点击发布



这样我的网站就发布好了

发布过后,我们可以去控制面板,的管理工具里找到Internet信息服务(IIS)管理器中





搞好这一步,然后再默认文档里,添加一个你网页的主页就OK啦

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

如何将本地的网站部署到IIS上

假设我在vs上建立了一个网站。网站的路径是:H:\asp.net\Solution1\WebApplication1



在控制面板里开打>管理工具>Internet 信息服务(IIS)管理器,在网站下添加一个网站





点击确定后,然后再右下角点击浏览网站



我们发现抛出错误了



报这个错误的原因是因为我们点击浏览网站的时候,网站默认打开地址是location:8080,这就表示要请求该网站下的所有文件。但是一般为了安全起见,IIS一般不然我们去请求网站目录下是所有文件。所以就报错了403.14 这个错误,Forbidden的意思就是禁止的意思,表示禁止请求,即不允许请求该网站下是所有文件‘

解决这儿错误很简单,只要在location:8088后面加上你要请求的哪个页面就可以了

比如在浏览器中输入http://localhost:8080/HtmlPage1.html 这样就可以了。(注意:这里仅仅说是的静态的文件可以.aspx还有问题,下面我们继续说)

但是我不想这么做,我就是想请求该网站下的所有文件(即:请求location:8080,然后页面上列出该网站的所有资源,然我选择的去浏览哪个网页:注:这样做是不安全的,IIS默认是禁止的,但是我们实在要这么做也是可以的,下面我们就演示下怎么做。)

在控制面板里开打>管理工具>Internet 信息服务(IIS)管理器。找到“目录浏览”



然后点击“启用”就可以了 。启用后,可以勾选目录浏览里面的时间,大小,扩展名,日期等,根据勾选的内容在页面上显示对应信息



启用后如下图:这样就把该网站的所有资源文件都列出来了,这样显然是不安全的。我们不推荐这么做,所以IIS一般是禁用这个功能的。这里仅仅是演示可以这么做而已



我们试着点击了一下改网站里面的静态文件,比如..js,css,jpg等文件和.html页面都能正常打开,但是点击WebForm1.aspx这样的动态页面就报错了



这里提示:无法识别的属性“targetFramework” 我们打开网站的Web.config配置文件,就会看到第十行有个<compilation debug="true" targetFramework="4.5" />

即表示我这个网站是用.net4.5版本编写的一个网站。 而我们在IIS上新建一个网站,它是以.Net Framework 2.0作为解析框架的,因为2.0版本的.NetFramework不能识别4.5版本的这个<compilation debug="true" targetFramework="4.5" />标签

解决这个错误的办法就是让IIS上新建的这个网站支持4.5 版本的.netFramework就可以了

怎么让它支持呢?

可以可以回到IIS中,点击应用程序集,在应用程序集下面找到我们的MyTestWebSite这个网站名的这个应用程序池

(我们在Internet 信息服务(IIS)管理器,对应网站的右边>编辑网站>基本设置,可以看到,网站名称与应用程序池的名称是一样的:其实我们在IIS里创建一个网站的时候,IIS会自动给我们建立一个与网站名称相同名称的应用程序池,这个应用程序池是干什么用的呢?当你请求这个MyTestWebSite网站以后,网站需要处理我们的请求,这样就需要有一个进程来处理,这个进程就是这个应用程序池里面的进程,帮我们处理对于这个网站的所有请求访问。说白了,这个应用程序池就是支撑这个网站的后台核心进程。
我们看到应用程序池里面有多个(3个)与各个网站同名的应用程序池,为什么每个网站都要有自己的应用程序池呢? 因为分多个应用程序池,后台就有多个进程,处理不同的网站使用单独的进程,各个网站之间就不会相互影响,即便某个网站流量过大,蹦了,瘫痪了,都不会影响其他的网站的正常运行)



于是我们在控制面板里开打>管理工具>Internet 信息服务(IIS)管理器 找到这个MyTestWebSite网站对应的这个MyTestWebSite应用程序池



然后右键,点击>基本设置



选择.Net Framework v4.0.30319 就可以了



这样就解决了上面报的:无法识别的属性“targetFramework” 这个错误了。

虽然不报无法识别的属性“targetFramework” 这个错误了,但是可能会报:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误" 这个错误

解决办法:请看这个链接:win7 IIS7 发布网站 出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误" 这样就全部解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: