0

我有一个用 IHttpHandler 用 c# 编写的简单处理程序。如何使它在 IIS 上工作?我按照http://mvolo.com/developing-iis7-modules-and-handlers-with-the-net-framework/#handler中的教程进行操作,但它对我不起作用。

在 IIS7 中,我的步骤:

  1. 我创建了一个名为“SAMPLE”的新网页

  2. 从 HandleMappings 我按下“添加托管处理程序”

  3. 我填写列 -> 请求路径:*.tm 类型:SampleServer.MyHandler 名称:MyHandler

  4. 尝试打开 localhost/SampleServer.tm/

我收到此错误:MyHandler 模块列表中的“ManagedPipelineHandler”模块无效。错误代码:0x8007000d

Web.сconfig 文件自动生成:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="MyHandler" path="*.tm" verb="*" type="SampleServer.MyHandler" resourceType="Unspecified" preCondition="integratedMode" />
        </handlers>
    </system.webServer>
</configuration>

我的 handler.cs 文件:

namespace SampleServer
{
    class MyHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
            DateTime dt = DateTime.Now;
            context.Response.Write(String.Format("<h1>{0}</h1>", dt.ToLongTimeString()));
        }
    }
}
4

1 回答 1

0

终于找到了答案。这是因为我删除了我以前的 IIS 并安装了 IIS7。IIS 需要配置 .NET 库。

在 cmd 上运行此命令:

    "%windir%\Microsoft.NET\Framework\"YOUR .NET VERSION"\aspnet_regiis.exe" -i

然后,如果您网站的 .NET 版本低于您的 *.dll 文件的版本,请从应用程序池中更改它。之后它运作良好。

于 2013-11-02T14:01:13.607 回答