gpt4 book ai didi

asp.net - 配置 IIS 7 和 ASP.NET 应用程序进行 URL 路由

转载 作者:行者123 更新时间:2023-12-02 02:26:51 26 4
gpt4 key购买 nike

这不是 MVC 主题。我有一个 ASP.NET 应用程序,它在 Application_Start 方法中执行 URL 路由。

路由看起来像:

RouteTable.Routes.Add(new Route(
"Profile/{query}",
new RouteValueDictionary() { {"query",string.Empty} },
new GenericRouteHandler("~/ProfileHttpHandler.ashx")
));

GenericRouteHandler 看起来实现了 GetHttpHandler:

var page= (IHttpHandler)BuildManager.CreateInstanceFromVirtualPath(_virtualPath, typeof(IHttpHandler));
...
return page;

ProfileHttpHandler.ashx 只是一个 Visual Studio 模板。它将 Content-type 设置为“text/plain”并写入“hello world”。

在 Visual Studio(在 ASP.NET 开发服务器上)中调试时,此应用程序可以正常工作。 GET http://localhost:59474/Profile/abc123 按预期路由到 http 处理程序。

但是,当此应用程序发布到在集成管道模式下运行 IIS 7 的远程计算机时,该过程会失败。当尝试获取 apps 文件夹内的任何内容(包括 Default.aspx)时,我收到 HTTP 500 错误。

Web.Config 配置如下:

<system.web>
<httpModules>
<add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
</system.webServer>

最后;我不确定这是否是相关信息。在我的 Web 服务提供商的控制面板中,我将此应用程序所在的目录配置为虚拟目录。它具有以下特点:

  • mydomain.ca/routeapp:托管空间中的文件夹 (domain.ca\wwwroot\routeapp)
  • 允许匿名访问:开启。
  • 启用集成 Windows 身份验证:开。
  • 启用基本身份验证:开。
  • ASP:已禁用。
  • ASP.NET:2.0 集成管道。
  • PHP:已禁用。
  • Perl:已启用。

最佳答案

您可以尝试将其添加到您的 web.config 文件中

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>

有关此内容的更多信息,请查看 iis forum thread .

关于asp.net - 配置 IIS 7 和 ASP.NET 应用程序进行 URL 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com