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

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

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

分析器错误信息: 未能使用提供程序“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 ,运行:

     加密:[b]aspnet_regiis -pe "connectionStrings" -app "/Myweb" [/b]-prov "MyProvider"        说明:[b]"connectionStrings" [/b]是要加密的节,[b]"/Myweb"[/b]是的web目录"MyProvider" 自己密钥容器 
解密:[b]aspnet_regiis -pd "connectionStrings"[/b][b] -app "/Myweb"[/b]-prov "MyProvider"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: