我正在尝试在运行iis7的服务器上部署我在mvc3中构建的网站。我能够在我的笔记本电脑上本地运行iis7,但是当我尝试将它放在服务器上时,我尝试远程访问它时出现403访问被拒绝错误,并且当我尝试“连接已超时”时从服务器本身查看它。
我确保使用asp_regiis.exe获得最新的.Net 4框架。我尝试了多个应用程序池,包括默认值。我允许.net4 isapi。我已更改允许IUSER,SERVER NETWORK,Authenticated Users访问的权限。我确保默认文档列表与我的笔记本电脑iis7上的相同(工作正常)。
我还有多个其他网站(使用webforms,而不是mvc)在服务器上正常工作。
它可能与我传递给服务器的文件的方式有关吗?我只是压缩文件并将它们(并解压缩)放在服务器上,然后将iis定向到创建的目录。
我错过了什么?
答案 0 :(得分:14)
我上周遇到了这个错误,可能是由许多事情造成的:
就我而言,我忘记将web.config中的日志目录路径值更改为现有的directoy。
如果是配置错误或应用程序中的错误,您可以做的是在VS中创建一个新的默认MVC项目并将其部署在同一个apppool中。
答案 1 :(得分:3)
如果您可以发布它(在VS中,右键单击您的项目并发布)并将其部署到您的网站(您有多个选项)后,最好不要压缩您的应用程序。
对于IIS,它看起来像身份验证的问题。尝试允许匿名身份验证。在IIS管理器上,转到您的网站,单击“身份验证”模块并启用“匿名身份验证”。
让我们看看之后会发生什么,即使“超时”问题很奇怪...... 可以肯定的是,默认情况下,它会被禁用以浏览网站内容,如果您尝试这样做,则会出现403错误。
你把你的应用放在哪里了?有时可能会出现问题(对于访问配置)将其放在特定文件夹中,如程序文件等。尝试在根目录下安装它,例如C:\ Websites \ MyApp,以便在没有用户权限问题的情况下进行测试。
答案 2 :(得分:3)
你应该检查一些事情。
您是否设置了将文件解压缩为IIS中的应用程序的目录?该应用程序是否运行.NET 3.5 / 4.0?
运行上面创建的应用程序的应用程序池的管道是在集成模式还是经典模式下运行?
通常,在部署MVC应用程序时,403不是权限问题。它告诉你不允许目录浏览。这是因为如果没有上述两个项目之一(或IIS中的自定义通配符映射),Web服务器就不知道如何处理路由,这是MVC应用程序的基础。
答案 3 :(得分:2)
答案 4 :(得分:1)
您需要确保解压缩文件的文件夹具有正确的权限设置。此外,您是否在该站点中进行了身份验证设置?
答案 5 :(得分:0)
在设置网站时,您是否通过单击测试连接测试了IIS设置。你有两个绿色的蜱虫吗?如果没有,请检查您的验证设置。文件夹访问设置和应用程序池设置。
答案 6 :(得分:0)
如果是aspx文件确保在IIS上设置了默认页面,如果没有安装asp.net应用程序。默认安装后,将创建aspx文件。