0

我正在尝试使用 Cassini 的 Server 类在我自己的应用程序中包含一个基本的 Web 服务器。我刚开始使用它来熟悉服务器的工作方式,并设置了一个简单的应用程序,如下所示:

    static void Main(string[] args)
    {
        Server server = new Server(80, "/", @"C:\Projects\");
        server.Start();
        Console.ReadLine();
        server.Stop();
    }

它允许我浏览目录,但是如果我尝试单击文件,例如 C# 源文件 (*.cs),则会出现以下错误:

“/”应用程序中的服务器错误。

不提供此类页面。

说明:您请求的页面类型未提供服务,因为它已被明确禁止。扩展名“.cs”可能不正确。
请查看下面的 URL 并确保其拼写正确。

我尝试在 Cassini 库中搜索该错误文本,但没有找到任何内容。

这个错误来自哪里?我怎样才能让它提供任何文件?我知道它是用来做 asp.net 和 HTML 的,但我希望它也像普通服务器一样服务器化任何文件。

4

2 回答 2

2

.cs文件和许多源代码类型被阻止呈现,因为它们由 ASP.NET 的禁止文件处理程序处理。

这最初是在主 web.config 中的以下设置中配置的c:\windows\microsoft.net\v2.0.50727\CONFIG\web.config

在该部分中查找<httpHandlers>,您会看到如下设置:

<add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>

通常这是一个好主意,因为它可以防止随意浏览可能包含敏感数据(如连接字符串)的源代码。

您应该能够通过执行以下操作在应用的本地 web.config 中删除此限制:

<configuration>
   <system.web>
      <httpHandlers>
         <remove verb="*" path="*.cs"/>
      </httpHandlers>
   </system.web>
</configuration>

I probably wouldn't recommend doing this on a web facing production environment.

于 2009-01-10T16:56:58.740 回答
1

Downloading and installing the MS ASP.Net Web Pages worked for me.

http://www.microsoft.com/download/en/details.aspx?id=15979

S.

于 2011-11-05T04:19:42.743 回答