PetShop4.0安装的几个错误和解决方法

来源:互联网 发布:淘宝闲鱼官网主页 编辑:程序博客网 时间:2024/04/28 08:07

配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。

源错误:


行 2:  <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
行 3:   <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
行 4:    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
行 5:     xmlns="http://www.w3.org/2001/04/xmlenc#">
行 6:     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
 

源文件: C:/Program Files/Microsoft/.NET Pet Shop 4.0/Web/web.config    行: 4


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42

解决方案在下面这位兄弟的blog里找到了。

http://azhai.cnblogs.com/archive/2006/01/30/324346.html

具体为:

运 行cmd,执行以下   aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"    说明:注册默认的 RsaProtectedConfigurationProvider 的RSA 密钥容器,    NetFrameworkConfigurationKey 是 RsaProtectedConfigurationProvider 的默认provider。 成功!



注意:你要是同时装了1.1和2.0,请找到2.0目录下的aspnet_regiis否则当然不成了。

然后又碰到第二个问题,具体描述和解决在下面这个兄弟的blog里。

http://zygoses2gether.cnblogs.com/archive/2006/01/05/311614.html

非域环境下的安装
问题:
系统提示“用户 'NT AUTHORITY/NETWORK SERVICE' 登录失败”

解决方法:

新建登录
在SQL Server企业管理器里,在安全性-登录里,新建一个登陆,在名称右边点"..."按钮,名称选择IIS_WPG,再点成员按钮,选择NETWORK SERVICE',确定以后,使用windows身份验证,允许访问,数据库选择Portal,确定

赋予权限
SQL Server企业管理器=〉安全性=〉登录=〉双击NT AUTHORITY/NETWORK SERVICE=〉“数据库访问”TAB页=〉授予对Portal数据库的访问权限

域环境下的安装
问题:
系统提示“用户 'IUSER_机器名' 登录失败”

解决方法:
操作方法基本相同,不过不是操作用户 'NT AUTHORITY/NETWORK SERVICE' ,而是需要修改IIS的匿名访问用户(IUSER_机器名)在SQLServer中的登录及权限。


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

加密 web.config



1、打开记事本,然后将下面的代码复制到一个新文件中。
<%@ Page Language="C#" %>
<%
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
%>

保存 my.aspx 到你的web目录 ,运行一下窗体显示 “ NT AUTHORITY/NETWORK SERVICE ”。成功!

2、(关键一步)运行cmd,执行以下

aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"
 

说明:注册默认的 RsaProtectedConfigurationProvider 的RSA 密钥容器,
NetFrameworkConfigurationKey 是 RsaProtectedConfigurationProvider 的默认provider成功!

3、现在,可以加密web.config ,运行:

加密:aspnet_regiis -pe "connectionStrings" -app "/Myweb"
说明:"connectionStrings" 是要加密的节,"/Myweb"是的web目录
解密:aspnet_regiis -pd "connectionStrings" -app "/Myweb"

成功!

4、这样就可以在程序里调用了(不用解密, 哈哈):
...
string connstr= ConfigurationManager.ConnectionStrings["myConnstr"].ConnectionString.ToString();
...


同样的,也可以用创建自己的RSA 密钥容器,如下:
  (1)、创建 "MyKeys" 密钥容器,运行:aspnet_regiis -pc "MyKeys" -exp 
(2)、在web.config里加入以下:
<protectedData>
<providers>
<add name="MyProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0. 0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d0a3a,
processorArchitecture=MSIL"
keyContainerName="MyKeys"
useMachineContainer="true" />
</providers>
</protectedData>

保存。


(3)、授予帐户对计算机级别的 "MyKeys" RSA 密钥容器的访问权限,运行:

aspnet_regiis -pa "MyKeys" "NT AUTHORITY/NETWORK SERVICE"

(4)、现在,可以加密web.config ,运行:

加密aspnet_regiis -pe "connectionStrings" -app "/Myweb" -prov "MyProvider"

说明"connectionStrings" 是要加密的节"/Myweb"是的web目录"MyProvider" 自己密钥容器

解密aspnet_regiis -pd "connectionStrings" -app "/Myweb" -prov "MyProvider"
     
 
原创粉丝点击