部署网站遇到的几点问题
1、RSA导入Key
先提示以下:aspnet_regiis.exe 在 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727 下。C 盘是我的安装路径。所以使用 DOS 命令要注意路径。(可以通过 开始菜单 -> 所有程序 -> Microsoft Visual Studio 2005 -> Visual Studio Tools -> Visual Studio 2005 命令提示 来打开使用 aspnet_regiis 命令的 cmd 界面。)
步骤如下:
(1)在当前计算机上,导出 RSA密钥容器。(可以在导出文件前指定路径。)
aspnet_regiis -px "NetFrameworkConfigurationKey" D:/RSAkeys.xml -pri
(2)在当前计算机上,用企业库工具加密配置文件。ProtectedConfigurationProvider 只能选择
RsaProtectedConfigurationProvider。
(3)在部署的计算机上, 导入名为 "NetFrameworkConfigurationKey" 的 RSA 密钥容器。
aspnet_regiis -pi "NetFrameworkConfigurationKey" D:/RSAkeys.xml
(1)和(2)可以在当前计算机直接操作,(3)的 DOS 命令可以在部署时由程序中完成。
这样就完成了!
提示一下:有可能步骤(1)导出失败,它不能使用 -pri 这个参数,而这个参数是导出解密使用的信息!如果没有它,在其他机器上只能加密新的东西。那么解决方法如下:
(1)在当前计算机上, 创建新的 RSA 密钥容器,它的名称为: CustomKeys 。(这里有个用户级别和计算机级别的,下面的方式是创建计算机级别的,名字按照你的要求取)
aspnet_regiis -pc "CustomKeys" -exp
(2) 在当前计算机上, 向帐户授予访问权限
aspnet_regiis -pa "CustomKeys" "NT AUTHORITY/NETWORK SERVICE"
其他需要访问权限的帐户也应该被授权。
(3)在当前计算机上,导出 RSA密钥容器。(可以在导出文件前指定路径。)
aspnet_regiis -px "CustomKeys" D:/RSAkeys.xml -pri
(4)在当前计算机上,将machine.config (在C:/WINDOWS/Microsoft.Net/Framework/v2.0.50727/CONFIG) 中 keyContainerName = "NetFrameworkConfigurationKey" 替换为我们新创建的名称:keyContainerName = "CustomKeys"。
(5)在当前计算机上,用企业库工具加密配置文件。ProtectedConfigurationProvider只能选择 RsaProtectedConfigurationProvider。
(6)在部署的计算机上, 导入名为 "NetFrameworkConfigurationKey" 的 RSA 密钥容器。
aspnet_regiis -pi "NetFrameworkConfigurationKey" D:/RSAkeys.xml
顺便提一下删除 RSA密钥容器 的命令:
aspnet_regiis -pz "CustomKeys"
当你输入一个错误的命令,会显示帮助命令信息。另外提示: 以上命令如果使用复制的方式,一定要注意检查下划线和空格的位置!
2、未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temp\App_global.asax.lra4cdoj.dll' -- '拒绝访问
在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NetFiles\root\106f9ae8\cc0e1169\App_global.asax.haz99mum.dll”--“拒绝访问。 ”错误
解决方法:
1,通常的解决方法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下:C:\Windows\temp-->属性-->安全-->编辑-->添加NETWORK SERVICE用户的读写权限就可以解决.
2,打开服务器系统c盘,打开window, 右键temp 属性 安全 编辑 添加IIS_IUSRS 用户控制权限添加修改和写入权限即可。这是Windows Server 2008 R2 标准版 SP1 64位中文版解决办法。(我的是这个问题.这样就解决了,上面的network service不用也行)