我们有一个 ASP.Net MVC 4 应用程序,我们正尝试将其部署到运行 IIS 6 的 Windows 2003 计算机上。我们将其运行在单独的应用程序池中,并设置为使用 asp.net 4.0。我们有一个 Wildcard 应用程序映射到 aspnet_isapi.dll,这是显示页面所必需的。
我们现在遇到的问题是,asp.net mvc 4 中的捆绑功能不起作用。当您尝试跟踪 /js?v=ASDfljkFSDlkjDSF 链接时,您会得到 404 返回。
我们知道它使用无扩展名的 URL,但如果我没记错的话,这些应该由 Wildcard 应用程序映射来处理?
有谁做到过这个工作或者有任何想法吗?
答案1
我知道这是很久以前的事了,但我在使用捆绑表的 Web 表单应用程序上遇到了这个问题。它作为自己的网站运行,而不是在虚拟目录下。IIS 不知道从哪里获取捆绑包(正如 ShaneC 所说)。
在虚拟目录的属性 --> 配置 --> 映射中,我插入了一个通配符条目“C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll”,并取消选中验证文件是否存在。
这对我有用。
答案2
IIS6 不知道哪个处理程序来处理类似 的扩展 URL 请求/js?blahblahblah
,因此它假定该文件是静态的,并查找它,如果找不到,则返回 404。
查看这个帖子解决方法
答案3
问题在于我们在为 ASP.Net 2.0 配置的默认网站下作为为 ASP.Net 4.0 配置的虚拟目录运行。
我们创建了一个新网站,并将其设置为 asp.net 4.0,一切运行正常。根据此帖子被黑客入侵无扩展名的 URL 现在应该可以在大多数 IIS 6 实例上运行。