IIS:在ISAPI筛选器上调用GetProcAddress失败

时间:2013-10-09 21:06:15

标签: c++ iis filter isapi

我正在尝试编写一个非常简单的ISAPI过滤器来调试另一个问题。 IIS返回错误代码 0x8007007f 在ISAPI筛选器上调用GetProcAddress“此处的dll”失败

我在使用IIS 7.5的Windows 7上的Visual Studio 2012中使用不带MFC的C ++。

以下是代码片段。在调试时,它似乎不会调用HttpFilterProc。我手动为项目添加了一个def文件,但我不知道它是否真的被使用了。

关于原因的任何想法?

DWORD WINAPI __stdcall HttpFilterProc(HTTP_FILTER_CONTEXT *pfc, DWORD NotificationType, VOID *pvData)
{
   switch (NotificationType)
   {
   case SF_NOTIFY_SEND_RESPONSE :
         return DoSendResponse(pfc, (HTTP_FILTER_SEND_RESPONSE *) pvData);
   default :
         break;
   }
   return SF_STATUS_REQ_NEXT_NOTIFICATION;
}


DWORD DoSendResponse(HTTP_FILTER_CONTEXT * pfc,HTTP_FILTER_SEND_RESPONSE * pResponse)
{
   BOOL fServer = TRUE;
   DWORD dwServerError;
   fServer = pResponse->SetHeader(pfc, "UMFilter:", "Enabled");
   if ( !fServer )
   {
         dwServerError = GetLastError();
         pfc->pFilterContext = (LPVOID)(DWORD64)pResponse->HttpStatus;
   }
   return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

1 个答案:

答案 0 :(得分:1)

解决方案是明确将模块定义文件添加到项目属性中 - >链接器 - > VS2012中的输入属性页面。

链接器没有拿起我添加的文件。