iis - 冷聚变 2016 : Can you have a folder in your web root named 'api' or 'rest' ?

标签 iis coldfusion cfml coldfusion-2016

我刚刚安装了 ColdFusion 2016(从 CF10 升级),我注意到每当我尝试访问 webroot 中名为“api”的文件夹时,我都会收到内部 500 错误。

例如:www.mysite.com/api/

我认为这与新的 ColdFusion API REST 服务有关,因此我创建了另一个名为“rest”的目录,执行了相同的测试 (www.mysite.com/rest/),并收到了另一个 500 错误。

查看IIS错误截图:enter image description here

奇怪的是,我没有使用 ColdFusion REST 服务,也没有在 ColdFusion Administrator 中启用它。

我的问题:

您是否允许在您的 Web 根目录中将文件夹名称命名为“api”或“rest”?或者这些是现在保留的文件夹名称?是否有针对特定站点禁用此功能的解决方法,以便我可以使用这些文件夹名称?

最佳答案

在 Adob​​e 论坛上看到这个应该可以回答你的问题:

您无法访问/api/或/rest/的原因是因为这些文件夹有一个 cf servlet-mapping。

您可以通过转到 cfinstall/cfusion/wwwroot/WEB-INF/web.xml 来删除映射。搜索 api servlet-mapping 并将其注释掉。

除了使用 IIS 重写将流量重定向到另一个文件夹之外,似乎没有其他方法可以为特定站点执行此操作。这样的事情应该可以工作(将流量从/api/重定向到/api2/):

<rule name="Redirect" stopProcessing="true">
     <match url="^api$|^api/(.*)" />
     <action type="Rewrite" url="api2/{R:1}" appendQueryString="true" />
</rule>

如果有人知道在不修改 web.config 的情况下为特定站点禁用此功能的方法,请随时分享您的想法。

关于iis - 冷聚变 2016 : Can you have a folder in your web root named 'api' or 'rest' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39903025/

相关文章:

asp.net-mvc - IIS 显示文件夹内容列表而不是运行网站(mvc 应用程序)

coldfusion - 在 ColdFusion 中使用 like 运算符的 cfqueryparam

mysql - 在 CFScript 中获取新插入的记录 ID

security - 如何确定用于运行我的网站的安全帐户?

asp.net - 在 Visual Studio Web 应用程序项目中使用 IIS 虚拟目录

c# - 使用 Web 服务时出错 : An existing connection was forcibly closed

coldfusion - 哪些 Web 框架可用于 CFML?

json - 从返回类型为 JSON 的方法返回两个记录集?

iis - IIS 8.5 和 ColdFusion 10 上的服务暂时不可用错误

新安装后 IIS 中的 ASP.NET 下拉列表中缺少 .NET 3.5