VS2013 Update3,.Net 4.5,MVC,IIS 7
我创建了一个新的mvc项目。 从VS测试,它的工作原理。 从IIs开始,我在wwwroot中创建了一个文件夹,并将其作为一个应用程序。添加.net 4.0的应用程序池。启用Windows身份验证和禁用匿名身份验证。在应用程序池和webapp中设置服务帐户。 从VS我使用默认设置(不是预编译)部署到IIS(使用文件系统) 站点在IIS上运行正常。 但… 如果单击了预编译设置进行部署。网站因403错误而失败。尝试了各种组合,永远不会让预编译工作。在非预编译时始终有效。
ASP.NET 4已在IIS中注册。 试过的模块runAllManagedModulesForAllRequests =" true"没有成功。
我没有想法并寻求帮助
Server Error in Application "xxx/MVCHELLOWORLD"
Internet Information Services 7.5
Error Summary
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
Detailed Error Information
Module
DirectoryListingModule
Notification
ExecuteRequestHandler
Handler
StaticFile
Error Code
0x00000000
Requested URL
http://xxx/MvcHelloWorld/
Physical Path
C:\inetpub\wwwroot\MvcHelloWorld\
Logon Method
Negotiate
Most likely causes: •A default document is not configured for the requested URL, and directory browsing is not enabled on the server.
Things you can try: •If you do not want to enable directory browsing, ensure that a default document is configured and that the file exists.
• Enable directory browsing using IIS Manager. 1.Open IIS Manager.
2.In the Features view, double-click Directory Browsing.
3.On the Directory Browsing page, in the Actions pane, click Enable.
•Verify that the configuration/system.webServer/directoryBrowse@enabled attribute is set to true in the site or application configuration file.
Links and More InformationThis error occurs when a document is not specified in the URL, no default document is specified for the Web site or application, and directory listing is not enabled for the Web site or application. This setting may be disabled on purpose to secure the contents of the server.
View more information »
答案 0 :(得分:1)
我刚遇到同样的问题,过去几天一直试图解决这个问题。
我有一台运行IIS 8 Express的Windows 8电脑。
我复制了一个MVC网站,该网站是从另一台PC编译和发布的,运行它,并获得与上述禁止相同的403.14。然后我尝试发布未编译的网站并运行它,网站加载就好了。
然后我决定在Windows 8 pc上加载Visual Web Express并创建一个虚拟MVC站点并运行它编译和未编译,它工作得很好。这向我展示了IIS 8 Express已配置并正常工作,并且网站编译方式一定存在问题。
我在发布期间尝试了不同的预编译方法,包括不合并,合并所有并合并每个文件夹,但没有任何区别。
最后,我通过将项目中引用的每个程序集的Copy Local属性更改为true来解决此问题。甚至是应该从GAC引用的所有默认值。
我不确定是否需要将每个程序集复制到bin文件夹中,但是如果我的项目中引用了大量程序集,那么逐个尝试它们会更容易。
编辑:做了一些更改并重新发布了网站,现在我又回到403.14禁止了:(我真的把头发拉到这个上面,为什么它不起作用。