我正在尝试使用Cassini的Server类在我自己的应用程序中包含一个基本的Web服务器。我刚开始玩它以熟悉服务器的工作方式,我设置了一个简单的应用程序,如下所示:
static void Main(string[] args)
{
Server server = new Server(80, "/", @"C:\Projects\");
server.Start();
Console.ReadLine();
server.Stop();
}
它允许我浏览目录,但是如果我尝试单击文件,例如C#源文件(* .cs),则会出现以下错误:
>应用程序中的服务器错误。此类网页未投放。
描述:您拥有的页面类型 请求不提供,因为它有 被明确禁止。该 扩展名“.cs”可能不正确。
请查看以下网址并制作 确保它拼写正确。
我尝试在Cassini库中搜索该错误文本,但没有找到任何内容。
这个错误来自哪里?如何让它提供任何文件? 我知道它的意思是做asp.net和HTML,但我希望它也像普通服务器那样服务器上的任何文件。
答案 0 :(得分:2)
.cs
文件和许多源代码类型都无法呈现,因为它们是由ASP.NET的禁止文件处理程序处理的。
这最初是在c:\windows\microsoft.net\v2.0.50727\CONFIG\web.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>
我可能不建议在面向Web的生产环境中执行此操作。
答案 1 :(得分:1)