我正在尝试使用 razor 语法的 ASP.NET 网页,因此我创建了一个示例站点。如果我在 WebMatrix 中查看站点或使用 VisualStudio(在浏览器中查看)一切正常。当我尝试创建 IIS 站点时,我在尝试访问任何 .cshtml 文件时收到 404 错误。常规 html 文件可从该站点工作。它设置为 .net 4 集成。我用谷歌搜索了一个小时,没有运气。
4 回答
会不会是您刚刚将 MVC 应用程序的文件复制到了 IIS 的目录(或虚拟目录)中?
为了让您的 ASP.NET MVC 应用程序正常工作,您需要在 IIS 管理器中配置一个 Web 应用程序(右键单击“默认网站”并选择“添加应用程序”)。然后将您的应用程序部署到刚刚创建的应用程序目录。
我们在我的公司遇到了完全相同的问题。为了让它工作,我们必须进行完整的 .Net 4 安装,并且页面可以正确提供。
检查“.cshtml”是否在站点的
属性 -> 主目录 -> 配置... -> 映射
我的映射到:
c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll
对于不适用于 .NET core 或 .NET 5 站点的剃须刀页面来说,这是一个热门话题。
我喜欢在 IIS 中运行我的本地开发,因为它反映了生产。在设置一个新项目时,我像往常一样在 IIS 中设置它,但得到一个 404。所有先决条件都已安装,我什至还有其他 .NET 5 razorpage 站点正在运行,所以知道这是一个项目设置。
对我来说修复是编辑 Properties\launchSettings.json (或通过 GUI Project > ProjectNameHere Properties > Debug 选项卡进行编辑)
删除除以我的项目“ProjectNameHere”命名的配置文件之外的所有配置文件具有以下设置:
"commandName": "IIS",
"launchBrowser": false,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
},
"dotnetRunMessages": "true",
"applicationUrl": "https://dev.projectnamehere.com"
- 然后保存并按 F5 或工具栏中的调试按钮。
- 网站现在可以在https://dev.projectnamehere.com上运行
- 停止调试
- 像普通网站一样点击https://dev.projectnamehere.com
- 进行剃须刀页面更改,正常刷新浏览器页面,查看更改
注意:我编辑我的 C:\Windows\System32\drivers\etc\hosts 文件以添加127.0.0.1 dev.projectnamehere.com
并使用在线工具为我安装的域创建自签名 TLS 证书,以使所有这些都像生产一样工作。