如何修复HTTP错误403.14 - 禁止

时间:2017-07-30 17:35:57

标签: c# iis

我正在尝试使用网络应用,这是我的第一个网络应用。我收到了这个错误:

HTTP错误403.14 - 禁止访问 Web服务器配置为不列出此目录的内容。

如何配置Web服务器?我甚至不知道它在说什么目录。

该应用正试图访问:http://localhost:22025/

我尝试搜索但很少有相关信息出现。我在运行框中键入了inetmgr但没有出现。所以我尝试安装IIS 7.5,但它说我已经安装了更新的版本。

我发现它是IIS快递。我还发现了这些信息https://docs.microsoft.com/en-us/iis/extensions/using-iis-express/running-iis-express-from-the-command-line

但我无法弄清楚如何设置它。我打赌没有exe,但即使我弄清楚输出文件类型是什么,这仍然允许我在ide中调试?

我已经开发了超过10年的Windows应用程序并且具有扎实的编程知识,但是我不知道从哪里开始,甚至不需要搜索什么样的教程。

编辑: https://github.com/Marvelous-Software/Challenge

EDIT2: 当我开发一个.net类库时,我可以将它指向一个exe并测试该类。

enter image description here

AssemblyName.ClassName test;

test = new AssemblyName.ClassName();
test.SomeProperty = 1;
Console.WriteLine(test.SomeProperty); //If '1' display then the property worked
test.SomeMethod();

这是一个关于如何在.net中测试类库的示例。我想学习web api。我该怎么做呢?我该如何运行代码?

2 个答案:

答案 0 :(得分:3)

在访问GitHub链接后,我可以看到它是一个Web API项目,因为Api / Controllers中的控制器继承了ApiController,你也可以在WebApiConfig.cs中看到

的路径

routeTemplate: "api/{controller}/{id}"

您需要在路由中提供控制器名称,以便ping控制器的默认路由变为

http://localhost:22025/api/ping

只是为了向您解释403.14的原因,正如其他答案所述,您的应用程序需要一个默认文档来提供默认路由的响应,即只有基本路径, 通常 不是Web Api的情况,因为它们不是 通常 专为最终用户设计的,而是作为其他客户端的端点,它将向用户呈现UI用户或其他Api。

您可以找到Web Api here

的文档

编辑#1 - 基于OP编辑#2

虽然您可以通过将类引用到exe来测试类库,但这不是单元测试的原始意义。你最好使用像MSTest这样的测试框架。可以找到更多信息here

希望有所帮助

答案 1 :(得分:1)

您缺少"默认文档"在您的Web服务器(IIS或IIS Express)中进行配置,可以通过多种方式进行配置,每种方式都取决于您使用的Web框架。 Microsoft ASP.NET堆栈中最常见的是:

-WebForms:当你的项目中有很多扩展名为.aspx的文件时,通常称为Default.aspx,Index.aspx,Home.aspx。您可以在浏览器http://localhost:22025/ Default.aspx 或您想要的其他网页上尝试输入类似内容。如果可行,您可以配置web.config文件,如本文https://blogs.iis.net/bills/how-to-add-a-default-document-with-iis7-web-config中所述

-ASP.NET MVC:当你有名为模型控制器视图的文件夹时,你可能有一个名为HomeController的控制器。 MVC中的默认约定是HomeController,默认为Action Index。因此,输入http://localhost:22025/ 主页之类的内容应足以查看您的网站。

一旦你意识到你正在使用哪个框架,那么搜索类似于"在xxx框架中配置默认​​文档"获取更多信息。

正如您所说的,在Web应用程序中,您没有exe文件作为输出,实际上,您有一个完整的输出目录"在" Bin"中使用主.dll带有C#编译内容的文件夹;还有很多扩展名如.js,.css,.jpg和其他"静态"文件只是按原样提供。

这个材料应该是从零创建第一个Web应用程序的良好起点。 https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/getting-started

如果有帮助,请告诉我, 祝你有愉快的一天

编辑:如果是WebAPI项目,你通常没有用户界面,它的工作原理与@Abhishek Siddhu的回答完全相同,你可以尝试一些调试工具,如Postman或Fiddler,以匹配其中的另一个http动词。动作。因为使用Web浏览器,您只能测试Get命名操作(具有HttpGet动词的操作)