当前位置: 首页 > 知识库问答 >
问题:

URL中的点会导致404与ASP。NET mvc和IIS

齐朝明
2023-03-14

我有一个项目,要求我的URL在路径上有点。例如,我可能有一个URL,比如www.example。com/people/michael。菲尔普斯

带有点的URL生成404。我的路线很好。如果我在没有圆点的情况下通过MichaelHelps,那么一切都正常。如果我加上这个点,我会得到一个404错误。该示例站点在Windows 7上运行,带有IIS8 Express。URLScan没有运行。

我尝试将以下内容添加到我的web.config:

<security>
  <requestFiltering allowDoubleEscaping="true"/>
</security>

不幸的是,这并没有什么不同。我刚刚收到404.0未找到错误。

这是一个MVC4项目,但我不认为这是相关的。我的路由工作正常,我期望的参数在那里,直到它们包括一个点。

我需要配置什么才能在我的URL中有点?

共有3个答案

茅高卓
2023-03-14

我相信你必须在你的网站上设置属性relaxedUrlToFileSystemMapping。配置。哈克不久前写了一篇关于这一点的文章(还有其他一些SO帖子也提出了同样的问题)

<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />

从下面的评论中编辑,更高版本的。NET/IIS可能要求将其放入系统中。Web服务器元素。

<system.webServer>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
淳于嘉树
2023-03-14

经过一番探索,我发现relaxedUrlToFileSystemMapping对我来说根本不起作用,在我的案例中起作用的是将RAMMFAR设置为true,这同样适用于(.net 4.0 mvc3)和(.net 4.5 mvc4)。

<system.webserver>
    <modules runAllManagedModulesForAllRequests="true">

在设置RAMMFAR true时,请注意Hanselman关于RAMMFAR和性能的帖子

卫招
2023-03-14

我通过编辑我的网站的HTTP处理程序实现了这一点。为了满足我的需求,这很好地解决了我的问题。

我只是添加了一个新的HTTP处理程序,用于查找特定的路径条件。如果请求匹配,则会正确发送到。NET进行处理。我更喜欢这个解决方案,因为URLRewrite黑客或启用了它。

例如,要让. NET处理URLwww.example.com/people/michael.phelps在system.webServer/handler元素中将以下行添加到站点的web.config:

<add name="ApiURIs-ISAPI-Integrated-4.0"
     path="/people/*"
     verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
     type="System.Web.Handlers.TransferRequestHandler"
     preCondition="integratedMode,runtimeVersionv4.0" />

编辑

还有其他帖子建议,这个问题的解决方案是RAMMFARRunAllManagedModulesForAllRequests。启用此选项将为所有请求启用所有托管模块。这意味着静态文件,如图像、PDF和其他所有文件都将由用户处理。当他们不需要的时候。除非你有具体的理由,否则最好不要使用这个选项。

 类似资料:
  • 我们正在开发具有移动部分和网络用户界面的应用程序。Web UI使用角,我们在后端配置cors时遇到了问题。我们的代码如下(只是对我们的问题很重要的代码): 从stackoverflow上的文档和其他帖子来看,这应该是可行的,但不是。我们错过了什么? thnx 编辑: 这是邮递员的请求: 卷曲'https://guw.azurewebsites.net/api/token'-X OPTIONS-H'

  • 虽然Visual Studio和Visual Studio Code MVC模板附带了一些客户端包,如jQuery、jQueryValide、bootstrap等。bower.json和. Bowerrc文件完全丢失,所以当我进入VS bowers包管理器时,我看不到已经安装的包这是相当烦人。 问题是这在两周前开始发生在我身上(大约在我尝试npm package manager并进行VS代码更新时

  • 我一直在搜索这个主题,但没有找到我想要的。基本上,我开始用UML的所有东西,用例,类图来计划一个项目。然后我们决定使用ASP。NET MVC。该应用程序是一种O-Desk或Elance 我有用户,承包商,公司,主持人和管理员。 我有点困惑模型应该如何表示这个用户,以及如何使用asp设置权限和角色。net mvc特性。 在一个正常的应用程序中,我会为他们每个人都创建一个类,他们可能会扩展User,其

  • 需要基础知识方面的帮助-我集成了角形和Spring靴。我制作了Angular应用程序的生产版本,并复制了Spring boot静态资源文件夹中的6个文件。 默认情况下,当我点击localhost:8080索引时。html呈现为Spring boot自动将其注册为欢迎页面。 现在,当我在角内,我可以通过角路由器导航到不同的组件,网址也在变化。 但当我复制同一个URL,例如localhost:8080

  • 我正在使用至少一次检查点模式,这应该是异步化进程。有人能建议吗?我的检查点设置 我的工作有128个容器。 我想用一个30分钟的检查站看看

  • 我尝试将Codeigniter与AngularJS路由一起使用,它正在工作,但我需要不使用散列。我使用以下代码: 但当我刷新页面时,跳转到404。