本帖最后由 J_JACKY 于 2011-09-23 17:18:09 编辑

解决方案 »

  1.   

    问题没描述清楚。是你打开VS时出错还是用VS调试你的程序时出错?如果是程序问题,最好贴出相关代码。
      

  2.   

    1、错误号401.1
    症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
    分析:
    由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。
    解决方案:
    (1)查看IIS管理器中站点安全设置的匿名帐户是否被禁用,如果是,请尝试用以下办法启用:
    控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。如果还没有解决,请继续下一步。
    (2)查看本地安全策略中,IIS管理器中站点的默认匿名访问帐号或者其所属的组是否有通过网络访问服务器的权限,如果没有尝试用以下步骤赋予权限:
    开始->程序->管理工具->本地安全策略->安全策略->本地策略->用户权限分配,双击“从网络访问此计算机”,添加IIS默认用户或者其所属的组。
    注意:一般自定义 IIS默认匿名访问帐号都属于组,为了安全,没有特殊需要,请遵循此规则。2、错误号401.2
    症状:HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。
    原因:关闭了匿名身份验证
    解决方案:
    运行inetmgr,打开站点属性->目录安全性->身份验证和访问控制->选中“启用匿名访问”,输入用户名,或者点击“浏览”选择合法的用户,并两次输入密码后确定。3、错误号:401.3
    症状:HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
    原因:IIS匿名用户一般属于Guests组,而我们一般把存放网站的硬盘的权限只分配给administrators组,这时候按照继承原则,网站文件夹也只有administrators组的成员才能访问,导致IIS匿名用户访问该文件的NTFS权限不足,从而导致页面无法访问。
    解决方案:
    给IIS匿名用户访问网站文件夹的权限,方法:进入该文件夹的安全选项,添加IIS匿名用户,并赋予相应权限,一般是读、写。
      

  3.   


    我这个是401.2 按你的意思,我得配置IIS 打开 站点属性,可问题我还没有发布网站,现在就在VS2010里运行的呀。
      

  4.   

    你的程序需要访问网站吗?那你配置好IIS,再试试。
      

  5.   


    大虾,不需要访问网站,IIS是好的,现在有个在正常运行的。对了,我的这个程序是VS2005升级成2010的。不知道需不需要别的处理。
      

  6.   

    检查项目属性中web标签下 NTML Authentification 是不是勾选上
      

  7.   


    比较莱,不知道需要贴哪段代码,是web.config吗?
      

  8.   

    web.config
    <?xml version="1.0"?>
    <configuration>
      <connectionStrings>
        <!--<add name="DocDBConStr" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DocDB.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True;Context Connection=False" providerName="System.Data.SqlClient"/>-->
        <add name="DocDBConStr" connectionString="Data Source=.;Initial Catalog=DocDB;User ID=sa;Password=sasa;"/>
      </connectionStrings>
      <system.web>
        <httpHandlers>
          <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
        </httpHandlers>
        <trace enabled="true"/>
        <customErrors mode="RemoteOnly" defaultRedirect="~/error.aspx"/>
        <compilation debug="true" targetFramework="4.0">
          <assemblies/>
          <buildProviders>
            <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
          </buildProviders>
        </compilation>
        <authentication>
          <forms name="AppNameCookie" loginUrl="Login.aspx" defaultUrl="Default.aspx" timeout="60" cookieless="UseCookies"/>
        </authentication>
        <!--自定义membership的配置-->
        <membership>
          <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="DocDBConStr" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
          </providers>
        </membership>
        <!--自定义roleManager的配置-->
        <roleManager enabled="true">
          <providers>
            <clear/>
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DocDBConStr"/>
          </providers>
        </roleManager>
        <authorization>
          <allow roles="超级管理员,懂事长,行政人员,经办人,审核人员"/>
          <deny users="?"/> 
        </authorization>
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
      </system.web>
      <location path="Login.aspx">
        <system.web>
          <authorization>
            <allow roles="超级管理员,懂事长,行政人员,经办人,审核人员"/>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="Default.aspx">
        <system.web>
          <authorization>
            <allow roles="超级管理员,懂事长,行政人员,经办人,审核人员"/>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="ChangePSW.aspx">
        <system.web>
          <authorization>
            <deny users="?"/>
          </authorization>
        </system.web>
      </location>
      <location path="GetPassword.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="main.aspx">
        <system.web>
          <authorization>
            <allow roles="超级管理员,懂事长,行政人员,经办人,审核人员"/>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="Register.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="User_info.aspx">
        <system.web>
          <authorization>
            <allow roles="超级管理员,懂事长,行政人员,经办人,审核人员"/>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="help.aspx">
        <system.web>
          <!--<authorization>
            <allow users="*"/>
          </authorization>-->
        </system.web>
      </location>
      <location path="help.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      <system.net>
        <mailSettings>
          <smtp from="mail.icitys.net">
            <network host="25" password="chensl" userName="[email protected]"/>
          </smtp>
        </mailSettings>
      </system.net>
    </configuration>
      

  9.   

    是吗,web项目都有这个的吧
      

  10.   

    看了下你的web.config, authentication mode不是windows,所以和NTLM Authentication的设置无关。
    应该是下面这段:
      <location path="Login.aspx">
      <system.web>
      <authorization>
      <allow roles="超级管理员,懂事长,行政人员,经办人,审核人员"/>
      <deny users="*"/>
      </authorization>
      </system.web>
      </location>
    这段配置禁止了对登录页面的匿名访问,所以登录页面都显示不出来,把这段删掉试试。
      

  11.   

     有效啊,不好意思刚出去了一下,实在是太菜了,之前是PB+SQL的,转到C#真是一头雾水呀!