【问题标题】:HTTP Error 404.7 - Is there any other option to solve it?HTTP 错误 404.7 - 还有其他解决方法吗?
【发布时间】:2017-04-27 21:33:45
【问题描述】:

我已经开始学习使用 ASP.NET 的 Web 服务。在快速搜索如何构建和使用一个简单的 Web 服务时,this 页面看起来既漂亮又简单。

我按照说明“在 IIS 虚拟目录中复制 FirstService.asmx...[并] 打开 Web 服务”(实际上,它显示为 FirstService.asmx.cs),但从那里开始出现问题。我遇到了几个 HTTP 错误(正如 here 所解释的那样,我授予了 IUSR 和 IIS_USRS 的权限,尽管后者可能无关紧要),我现在遇到了错误 404.7。

我尝试了这两个(12)SO 帖子的建议(所以我现在在我的文件夹中有第二个文件,一个Web.config 文件,尽管上面链接的网站没有提及Web.config文件),没有任何帮助。

请注意,我还按照this 页面向 IIS 注册了正确版本的 ASP.NET。

还有其他选择吗?

编辑:

Windows 7 Ultimate(64 位)、IIS 7.5

完全错误(请原谅图形):

错误摘要

HTTP 错误 404.7 - 未找到请求过滤 模块配置为拒绝文件扩展名。

详细的错误信息

模块:RequestFilteringModule

通知:BeginRequest

处理程序:静态文件

错误代码:0x00000000

请求的网址:http://localhost:80/MyWebServices/WebService1.asmx.cs

物理路径:C:\Users\home\Desktop\MyWebServices\WebService1.asmx.cs

登录方式:尚未确定

登录用户:尚未确定

我的Web.config

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <fileExtensions allowUnlisted="true">
          <remove fileExtension="." />
          <add fileExtension="." allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

【问题讨论】:

  • 请在您的问题中发布实际的完整错误和您的实际配置(Windows 版本、IIS 版本、XML 配置)。此外,该教程没有日期是有原因的:它至少有 10 年的历史。转储 ASMX 并使用 ASP.NET Web API 或 WCF。
  • 谢谢,已添加编辑。我当然会最终转向 Web API WCF,但我喜欢了解基础知识并了解仍在使用的技术(至少在大企业中),例如 ASMX。跨度>

标签: asp.net web-services iis


【解决方案1】:

.cs 是一个code 文件,默认情况下所有.cs 文件都是not allowed 在浏览器中当然是browsed,因为security concerns 因为所有code 都在那里。

另外如果你想浏览你的webservice你不需要browse .cs文件你需要浏览以下

http://localhost:80/MyWebServices/WebService1.asmx

如果未添加MIME Type for asmx,则需要添加MIME Type for asmx

  • 转到 IIS
  • 在左侧选择您的Website/Webservice
  • 选择MIME Types
  • 选择右上角的Add
  • File Name extension 中添加.asmx,在MIME Tpe 中添加text/xml

【讨论】:

  • 嗯,'asmx.cs'文件是在VS的“asp.net web application”项目中创建的,在那里显示为'.asmx',然后我把它取出来了项目文件夹并将其放在“MyWebServices”文件夹中,“.cs”后缀会自动添加到其中。所以如果这是问题的话会很奇怪,但我会试试的。
  • 你不需要把它带到文件夹外,把它留在VS创建的地方。
  • 我知道,但我想要一个更方便的文件夹来访问,桌面文件夹是直接的选择
  • 您可以直接从 VS 托管网络服务。转到项目属性选择Web 并选择Local IIS 并单击创建Virtual Directory 您可以通过该地址浏览。
  • 更新:它正在工作!以供将来参考,这是我所做的:您对.cs 文件的评论让我尝试做一些调整:从.asmx.cs 文件中删除.cs 后缀。然后我再次使用 IIS 浏览,得到了更清晰的错误消息:我缺少 指令。然后我突然想到在我阅读的教程中确实找到了这个扩展名,但是我忘记添加它,因为 VS 专门为它专用了一个不同的 .asmx 文件。所以我将它的内容复制到我的文件中,它工作了!顺便说一句,不需要添加 MIME。
猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多