我正在使用HttpHandler动态确定要为白色标签站点显示的正确徽标。 当我在本地运行时,此方法非常有效,但是当我们将站点部署到测试环境中时,对HttpHandler的调用将返回404。
我有一个模糊的怀疑,这是由于Web.config的某种问题而发生的,例如,Web.config中处理程序的注册没有使其进入本地以外的任何环境,因此该处理程序是“找不到。 但是,除非我需要积极地做一些事情以确保处理程序已在各种环境转换中注册(我目前未在执行),否则在调试和发行之间没有任何转换会影响到这一点。
这是在我的Web.config中(在<configuration><system.webServer><handlers>
)注册<configuration><system.webServer><handlers>
:
<add name="LogoHttpHandler" verb="*" path="imagehandler/*" type="MyWebApp.HttpHandlers.LogoHttpHandler, MyWebApp" resourceType="Unspecified"/>
我承认我对上述每一项的功能尚不完全清楚(特别是在类型参数和resourceType参数中重复命名空间),但这是有效的代码。 该文件本身位于一个名为Helpers的根文件夹中-我以为它必须驻留在App_Code中,但这导致命名空间问题,并且最终在没有该文件的情况下可以正常工作。
任何帮助将非常感激。 谢谢!
编辑:在集成模式下在IIS 7中注册处理程序的说明开始于:“编译HTTP处理程序类,并将生成的程序集复制到应用程序根文件夹下的Bin文件夹。-或者-将处理程序的源代码放入应用程序的App_Code文件夹。” 我没有做任何事情(如上所述,我从App_Code中的处理程序开始但将其移出),并且该处理程序仍在我的本地环境中工作。 也许那是真正的错误-它不应在任何地方运行,但会在本地给我带来误报吗?