【问题标题】:Problem implementing Paul Johnson's Web Widget code, it works in VS 2008 but not in deployment to IIS 6.0实现 Paul Johnson 的 Web Widget 代码时出现问题,它在 VS 2008 中有效,但在部署到 IIS 6.0 时无效
【发布时间】:2008-12-08 18:28:07
【问题描述】:
使用来自Paul Johnson's Web Widgets 页面的说明,我创建了自己的自定义小部件。但是,因为我正在部署到 IIS 6.0,所以我使用 web.config change recommended 来呈现页面,因为 IIS 7.0 配置管理选项在 IIS 6.0 中不可用。
在使用 VS 2008 进行调试时,小部件会正确呈现。但是,一旦将文件和更新的 web.config 部署到运行 IIS 6.0 的 Windows 2003 Server 并且引用的地址呈现的错误是“找不到页面”。
开发机器是 Windows Vista 机器,但是由于 VS 2008 使用自己的内部 Web 服务器而不是 Vista 的 IIS 7.0 进行调试,我不认为这会是一个问题。
任何调试此问题的帮助将不胜感激。
【问题讨论】:
标签:
asp.net
iis-6
web-config
widget
ihttphandler
【解决方案1】:
他的指示不完整。您还需要将 .jss 的应用程序配置中的脚本映射添加到 windows\microsoft.NET\framework\vXXXX\ 目录中的 aspnet_isapi.dll。
IIS6 不执行 Cassini 固有的集成管道,并且在 IIS7 中是默认设置。
编辑:详细信息
- 在 IIS 管理器中打开应用程序属性。
- 选择主目录选项卡
- 点击配置...
- 在映射列表中为 .aspx 选择条目,单击编辑...
- 高亮并复制Executable文本框的内容,点击取消
- 点击添加...
- 粘贴到可执行文本框中
- 在扩展文本框中输入 .jss
- 输入 GET。 HEAD in Limit to: 框
- 您可能需要禁用验证文件是否存在
好的。
现在,扩展名为 .jss 的 URL 将移交给 ASP.NET 进行处理。
【解决方案2】:
我必须进行的其他一些更改...
配置更改(处理程序应映射到 EventsWidget,而不是 WidgetBase):
<system.web>
<httpHandlers>
<add verb="GET,HEAD" path="eventswidget.jss" type="Demo1.Handlers.EventsWidget, Demo1" validate="false" />
</httpHandlers>
</system.web>
EventsWidget.BuildOutput 应该返回 Javascript(取决于您在 Default.aspx 中设置“脚本”标签的方式):
Public Overrides Function BuildOutput() As String
Dim sOutput As String = "document.write('<br><b>Hello World</b>');"
Return sOutput
End Function