评论

收藏

[IIS] MVC4 网站发布(整理+部分问题收集和解决方案)

web服务器 web服务器 发布于:2021-10-01 12:02 | 阅读数:596 | 评论:0

这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因。
如有冒犯请联系本人,或删除,或标明出处。
因为好的文章,以前只想收藏,但连接有时候会失效,所以现在碰到好的直接转到自己这里。
网站发布步骤:
1、打开你的VS2012网站项目,右键点击项目》菜单中 重新生成一下网站项目;再次点击右键》发布:
DSC0000.jpg

DSC0001.jpg

2、弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件:
DSC0002.jpg

输入你自己定义的配置文件名:
DSC0003.jpg

3、点击下一步:在发布方法中选“文件系统”,这样我们可以发布到自己指定的本机文件上。
DSC0004.jpg

DSC0005.jpg

选择自己指定的文件夹:通过点击下图中右上角红色箭头处创建新的文件夹,自定义命名(我的就写WebSite)。点击打开,进入下一步
DSC0006.jpg

4、 在配置中,要选择“Release”——发布模式(Release   称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序)
DSC0007.jpg

5、点击下一步:进入发布前的预览界面
DSC0008.jpg

点击发布即可以发布你指定的文件夹中,这里,我发布的是C盘下的WebSite文件夹中。
发布成功后,点开文件夹,所有页面的.cs文件都消失了, 都去哪里了呢?是bin文件夹里面吗?大家猜一猜。
发布好的截图:
DSC0009.jpg

6、通过》控制面板》管理工具》启动 ‘Internet信息服务(IIS)管理器' 进入IIS界面。
右键单击网站》添加网站
DSC00010.jpg

7、下面图中,左边红色方框内输入自定义的网站名称(请尽量用英文,这里我就写MyPhotoSite),右边红色箭头处需要点击 ‘选择(E)…' 进行更改。
DSC00011.jpg

大家可以点开下拉列表框根据自己的网站版本进行选择(一般请选择不带有Classic的)。这里我选择的是选择DefaultAppPool,
DSC00012.jpg

8、选择 “已发布网站文件夹” 的物理路径。
DSC00013.jpg

9、点击下拉列表选择 “自己当前的IP地址”
DSC00014.jpg

点击确定:这时我们的网站就还差一步就发布好了,点击网站MyPhotosSite,再点击下图红色箭头处 切换到 “内容视图”。
DSC00015.jpg

10、 最后一步:注册IIS服务器。命令:aspnet_regiis -i(请复制),先在程序菜单》VS2012里面》Visual Studio Tools》VS2012开发人员命令提示。右键单击 “VS2012开发人员命令提示”。以管理员身份运行。(如果不是以管理员身份运行,将会提示“权限不足”错误)
DSC00016.jpg

DSC00017.jpg

运行后,右键粘贴 aspnet_regiis -i 按回车。等待运行大概 1分钟左右提示安装完毕(我的机子慢所以提供1分钟供大家参考,大家不要着急慢慢等待安装完成即可)。
DSC00018.jpg

最后,找到自己的网站首页,右键浏览。IE有时会不响应(地址栏出现空白),要多次浏览才会成功。展示一下我们的成果:
DSC00019.jpg

说明:上面转载的这部分文章,说明一点大概博主的网站不是MVC4的网站所以在添加网站那步是有出入的
原文是说
大家可以点开下拉列表框根据自己的网站版本进行选择(一般请选择不带有Classic的)。这里我选择的是选择DefaultAppPool,
而我们是MVC4的 所以选择 ASP.NET v4.0 这项
一般会立即报一个
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\ca8ed912\d7b1512d\App_global.asax.6rl89b0n.dll' -- '拒绝访问 的错误.

1,通常的解决方法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下:C:\Windows\temp-->属性-->安全-->编辑-->添加NETWORK SERVICE用户的读写权限就可以解决.

2,打开服务器系统c盘,打开window, 右键temp 属性 安全 编辑 添加IIS_IUSRS 用户控制权限添加修改和写入权限即可。这是Windows Server 2008 R2 标准版 SP1 64位中文版解决办法。(我的是这个问题.这样就解决了,上面的network service不用也行)

IIS发布步骤:
这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因。
如有冒犯请联系本人,或删除,或标明出处。
因为好的文章,以前只想收藏,但连接有时候会失效,所以现在碰到好的直接转到自己这里。
原文 出处https://www.soaspx.com/dotnet/asp.net/DPattern/dpattern_20120621_9306.html
网站发布环境:Win7,IIS7.5
网站编写环境:Win7,VS2010,MVC3
1.配置 IIS7.5
控制面板——程序——打开或关闭Windows功能——Internet信息服务,按照下图设置 【Internet信息服务】,现在IIS7.5就设置好了。
DSC00020.png

2.网站发布
2.1. 从VS2010中导出网站
在VS2010中编译好 Solution,然后在菜单栏选择Build——Publish Test(这里Test是Solution名称)弹出如下窗口
DSC00021.png

网站存放在C:\inetpub\test地方
2.2. 去【Internet信息服务】发布网站
2.2.1 查看 【应用程序池】是否包含ASP.NET v4.0,ASP.NET v4.0 Classic
控制面板(查看方式:小图标)——管理工具(如图2)——Internet 信息服务(IIS)管理器(鼠标双击打开,如图3)——应用程序池(鼠标双击打开),
查看是否有图3中绿色框里的ASP.NET v4.0,ASP.NET v4.0 Classic,如果没有,说明Framework没有完全安装,这样种情况下发布的网站是无法访问的。
解决方法:
开始——cmd,在命令管理器里输入以下这样一串字符按Enter键即可(如图1):
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
DSC00022.png

图1 cmd
DSC00023.png

图2 管理工具
DSC00024.png

图3 Internet 信息服务(IIS)管理器
2.2.2 发布网站
Internet 信息服务(IIS)管理器(鼠标双击打开,如图3)——选择【网站】鼠标右键单击,弹出菜单,选择【添加网站……】弹出图4 窗口
DSC00025.png

图4添加网站
经过如上操作,网站就发布成功了
双击新建的网站test,如图5,选择右侧的【重新启动】,然后点击右侧的【浏览网站】下的【浏览192.168.19.19……】,就可以在浏览器中查看发布的网站了
DSC00026.png

图5
一些可能会出现的问题:
错误:
用户 'IIS APPPOOL\ASP.NET v4.0' 登录失败。
说明:执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 'IIS APPPOOL\ASP.NET v4.0' 登录失败。

源错误:


执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。用户 'IIS APPPOOL\ASP.NET v4.0' 登录失败 怎么解决啊,各位高手?
因为你的程序连接SQLServer的连接字符串是用了windows集成登陆,你可以改成用数据库帐号密码登陆。
你网站发布到IIS 之前 记得修改 配置文件.即 web .config 文件中数据库连接字符串<connectionStrings> </connectionStrings>节点中默认的或你自己一开调试程序添加的是有可能是以前 "." 代表本机 密码是用系统默认的,发布到IIS后是没办法使用的,所以要改成通用的 一下给出的是一个范例,第一个是系统默认的,用了之后也会出现你这错误, 另一个修过的的范例是正确的默认: <!--<add name="TenderSystemContext" connectionString="Data Source=.;Initial Catalog=DeLiXiTenderSystem;Integrated Security=True;MultipleActiveResultSets=True"   providerName="System.Data.SqlClient" />-->正确:<add name="TenderSystemContext" connectionString="Data Source=IT-CHENXIAOPENG\;Initial Catalog=DeLiXiTenderSystem;User ID=sa;Password=sql+SERVER;MultipleActiveResultSets=True"   providerName="System.Data.SqlClient" />
provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程
已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

解决方法如下
首先选中服务器(右键)->属性->安全性->服务器身份验证修改为"SQL SERVER和WINDOWS身份验证模式"
其次展开服务器上的"安全性"->登陆名->选中SA登陆帐号(右键)->状态->登陆修改为启用

解决步骤:   
1、用Windows身份登录Management Studio,右击服务器选择属性,将安全性选项 更改为:SQL Server 和 Windows 身份验证模式。


DSC00027.gif



DSC00028.jpg


2、在 安全性->登录名 中设置sa用户的属性,在状态一栏中有“登录”一项,默认是禁用,改为启用。

DSC00029.jpg


3、打开 配置工具->“SQL Server 外围应用配置器”,运行后,选择“服务和连接的外围应用配置器”。
   首先选择 远程连接->本地连接和远程连接->仅使用TCP/IP,点击“应用”。
   其次选择 服务 先停止SQLEXPRESS服务,再将其重新启动。

DSC00030.jpg

DSC00031.jpg

DSC00032.jpg
但并没有解决我的问题。
后来发现。sql server brower服务没启动,重新启动该服务。然后重启sql server服务即可。
如果启动后提示:
用户 'sa' 登录失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。
修改webconfig中相应的代码即可。
<connectionStrings>
<add name="数据连接名" connectionString="Data Source=.;Initial Catalog=数据库;pwd=你的密码;"
   providerName="System.Data.SqlClient" />

分享到: QQ好友和群QQ好友和群
评论

使用道具 举报