9

我正在尝试在运行 iis7 的服务器上部署我在 mvc3 中构建的网站。我能够让它在我的笔记本电脑上本地通过 iis7 运行,但是当我尝试将它放在服务器上时,我在尝试远程访问它时收到 403 access denied 错误,当我尝试时出现“连接已超时”从服务器本身查看它。

我确保我拥有使用 asp_regiis.exe 的最新 .Net 4 框架。我尝试了多个应用程序池,包括默认值。我允许 .net4 isapi。我已更改权限以允许来自 IUSER、SERVER NETWORK、Authenticated Users 的访问。我已确保默认文档列表与我的笔记本电脑 iis7 上的相同(工作正常)。

我还有多个其他站点(使用 webforms,而不是 mvc)在服务器上运行良好。

这可能与我将文件传递到服务器的方式有关吗?我只是将文件压缩并将它们(并解压缩)放在服务器上,并将 iis 定向到创建的目录。

我错过了什么?

4

7 回答 7

14

我上周遇到了这个错误,它可能是由很多原因引起的:

  1. 未安装正确版本的 .NET 框架或未向 asp_regiis.exe 注册
  2. “runAllManagedModulesForAllRequests”在您的 web.config 中设置为 false
  3. 服务器中未安装正确版本的 MVC
  4. 您有一条忽略您的请求的忽略路线
  5. 您的 Application_Start 中有一个早期异常,并且您的站点无法正常启动

就我而言,我忘记将 web.config 中的日志目录路径值更改为现有目录。

要知道这是配置错误还是应用程序中的错误,您可以做的是在 VS 中创建一个新的默认 MVC 项目并将其部署在同一个应用程序池中。

于 2012-07-08T08:04:52.947 回答
3

如果您可以发布它(在 VS 中,右键单击您的项目并发布)并在将其部署到您的网站后(您有多种选择),而不是压缩您的应用程序,那会更好。

之后,对于 IIS,它看起来像是身份验证的问题。尝试允许匿名身份验证。在 IIS 管理器上,转到您的网站,单击身份验证模块并启用“匿名身份验证”。

让我们看看之后会发生什么,即使“超时”问题很奇怪....可以肯定的是,默认情况下,浏览网站内容是禁用的,如果您尝试这样做,您将遇到 403 错误.

你把你的应用程序放在哪里了?有时将其放在特定文件夹(如 Programs 文件等)中可能会出现问题(对于访问配置)。尝试将其安装在 C:\Websites\MyApp 等根目录下,以便在没有用户权限问题的情况下进行测试。

于 2012-07-07T02:59:12.893 回答
3

你应该检查几件事。

  1. 您是否将解压缩文件的目录设置为 IIS 中的应用程序?该应用程序是否运行 .NET 3.5/4.0?

  2. 您的应用程序池管道是否运行您在上面创建的应用程序在集成模式或经典模式下运行?

通常,在部署 MVC 应用程序时,403 不是权限问题。它告诉您不允许目录浏览。这是因为没有上述 2 项中的任何一项(或 IIS 中的自定义通配符映射),Web 服务器不知道如何处理路由,这是 MVC 应用程序的基础。

于 2012-07-07T05:53:38.577 回答
2
  1. 使用所有默认值创建一个新的 MVC 3 互联网应用程序。在本地 IIS 服务器上运行。
  2. 将应用程序移动到服务器并将其添加为应用程序。
  3. 在服务器上测试本地访问(从 IIS 管理器中浏览 80)。
  4. 在找出问题所在之前,不要乱动所有权限。
  5. 请参阅我的博客http://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30 -seconds.aspx
于 2012-07-07T19:55:34.123 回答
1

您需要确保解压缩文件的文件夹具有正确的权限设置。另外,您是否在该站点中进行了身份验证设置?

于 2012-07-06T21:36:23.627 回答
0

在设置网站时,您是否通过单击测试连接来测试您的 IIS 设置。你有没有得到两个绿色的勾号。如果不是,请检查您的身份验证设置。文件夹访问设置和应用程序池设置。

于 2012-07-07T19:59:28.310 回答
0

如果是 aspx 文件,请确保在 IIS 上设置了默认页面,如果没有安装 asp.net 应用程序。安装后,默认情况下会创建 aspx 文件。

于 2015-11-05T09:57:53.780 回答