当你在IIS 10上部署.NET Core Razor Pages应用程序时,如果遇到“未在PageModel中发现的端点”并且HTTP响应为404错误,这通常意味着IIS没有正确配置来处理ASP.NET Core应用程序。以下是一些基础概念、可能的原因以及解决方案:
确保服务器上安装了适用于你的.NET Core版本的Hosting Bundle。你可以从.NET官方网站下载它。
确保你的项目中的web.config文件配置正确。它应该包含以下内容:
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"
hostingModel="InProcess"/>
</system.webServer>
</configuration>
确保processPath
指向你的应用程序的dotnet
可执行文件路径。
确保IIS_IUSRS或相应的应用程序池标识具有对应用程序文件夹的读取和执行权限。
有时简单的重启IIS服务可以解决问题。你可以通过命令行使用以下命令重启IIS:
iisreset
检查应用程序的日志文件,通常位于项目的logs
目录下,或者在IIS的日志文件中查找更多错误信息。
如果你在PageModel中定义了一个端点,确保它被正确地标记了[BindProperty]
和[HttpGet]
(或其他HTTP方法)属性。例如:
public class IndexModel : PageModel
{
[BindProperty]
public string SearchTerm { get; set; }
public void OnGet()
{
// 页面加载时的逻辑
}
public IActionResult OnPostSearch()
{
// 处理搜索逻辑
return Page();
}
}
确保对应的Razor页面中有相应的表单和操作:
<form method="post">
<input type="text" asp-for="SearchTerm" />
<button type="submit">Search</button>
</form>
通过以上步骤,你应该能够解决在IIS 10上部署.NET Core Razor Pages应用程序时遇到的404错误。如果问题仍然存在,建议查看更详细的日志信息来进一步诊断问题。
领取专属 10元无门槛券
手把手带您无忧上云