【问题标题】:moving website to new hosting causes "forbidden"将网站移至新主机导致“禁止”
【发布时间】:2015-06-09 10:20:50
【问题描述】:

我正在将网站从一台托管服务器移动到另一台托管服务器。我已经上传了文件。我正在使用表单身份验证。基本上,我要搬到 GoDaddy。

我可以直接访问登录表单:www.mysite.com/login.aspx 但是,当我打开 www.mysite.com 时,它会显示

Forbidden
You do not have permission to access this document.

什么会导致这个问题?哪些文件没有权限?我应该修改web.config 还是其他什么?

我使用的是 asp.net 3.5 版。

【问题讨论】:

  • 您的默认页面似乎没有配置
  • 为什么它在以前的网络托管服务器上工作?我的意思是,我真的没有看到为默认页面配置的任何内容。但是如果设置了表单认证,网页是否应该默认重定向到登录页面?
  • 只是为了验证上述建议,设置默认文档并尝试!

标签: asp.net configuration file-permissions web-hosting


【解决方案1】:

问题:

IIS 有默认文档的配置,通常是default.htm、default.aspx 等,但没有login.aspx。如果站点在根文件夹中没有默认文档并且目录浏览功能被禁用,您将收到禁止消息。

解决方案:

  • 根据默认 IIS 配置创建默认文档
  • 或更改 IIS 配置以将 login.aspx 设为默认文档

要创建默认文档,请添加一个新文件,将其命名为 default.htm 并复制到您网站的根目录

<html>
   <head>
      <meta http-equiv="REFRESH" content="0;url=login.aspx">
   </head>
   <body></body>
</html>

要更改 IIS 配置,请转到您的主机设置面板并找到 Web 服务器设置功能,您可以在其中将 login.aspx 添加到您帐户的默认文档列表中。

【讨论】:

    【解决方案2】:

    在我看来,未设置 IIS 中的默认页面。您的默认页面似乎是登录,而 IIS 默认为默认。

    【讨论】:

      【解决方案3】:

      这可能是因为 IIS 没有找到默认的起始页。在 IIS 中添加默认文档是一种方法。但另一种方法是在 web.config 文件中添加默认文档(起始页)。

      假设你想在有人打开你的网站时打开 login.aspx 页面,然后在 web.config 文件中添加以下代码

         <system.webServer>
           <defaultDocument>
                  <files>
                      <clear />               
                      <add value="Login.aspx"/>
                  </files>
              </defaultDocument>
          </system.webServer>
      

      【讨论】:

        【解决方案4】:

        想想你的网络服务器是如何工作的基础知识。

        您有一个文件根文件夹(通常命名为 www/ 或 public_html/ 或其他名称,具体取决于您的设置),并且根文件夹中有子文件夹和文件。

        Web 服务器的工作原理是它们只允许公共访问您的“公共根文件夹”,而不是您的服务器文件/特定语言文件夹/系统文件夹等。

        现在考虑一下您的错误消息,它告诉您“您没有访问此文档的权限”。这基本上是在谈论您的 default.aspx 或 index.html 或在您加载根域时加载的其他形式的默认/索引文件。

        这是由于该特定文件/依赖文件等的“权限错误”,正如错误消息所述。您需要检查文件和文件夹的访问模式,这在 unix 中是通过 chmod 命令完成的,在位于 file/folder properties -> security -> Permissions的窗口中> 通常在一组用户中列出,即您的公共/所有用户组(如果存在) 您需要这些设置来授予读取或执行(执行取决于它是什么类型的文件,如果 html/aspx 比读取就足够了,在任何情况下都严格不要写入,因为这允许公众修改您的文件)权限,以便Web 服务器以成功将它们提供给公众。

        为了给系统特定的帮助,你的ASP.NET版本不足以解决它,还需要你的IIS信息以及你的服务器和文件系统设置等

        【讨论】:

          【解决方案5】:

          Asp.net 可能没有在您的新服务器上注册。您可以检查它,我将一个简单的 html 文件添加到您的文件夹并尝试浏览它。由于.net未注册,aspx扩展名未知。

          你应该运行 aspnet_regiis.exe -ir :

          1. %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -ir
          2. %windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -ir

          【讨论】:

            猜你喜欢
            • 2016-05-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-26
            • 2021-01-29
            • 2018-01-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多