VS2015 VC ++ Win32应用程序无法通过IIS工作

时间:2017-08-07 16:50:05

标签: c++ winapi iis visual-c++ visual-studio-2015

VS2015 VC ++ Win32应用程序无法通过IIS

工作

我正在尝试将传统的ISAPI应用程序从VS2003转换为VS2015。但是,我希望在转换整个应用程序之前运行一个简单的应用程序。

以下是我遵循的步骤:

第1步:

创建一个新的VisualC ++ Win32项目'Web1'

第2步:

将以下代码添加到Web1.cpp

#include "stdafx.h"
#include <HttpExt.h>

BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO* pVer)
{
    pVer->dwExtensionVersion = HSE_VERSION;
    return TRUE;
}

BOOL WINAPI TerminateExtension(DWORD dwFlags)
{
    return TRUE;
}

DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *pECB) {

    char *header =
        "<html>"
        "<head>"
        "<title>Hello from Web1</title>"
        "</head>"
        "<body>"
        "<h1>Hello from Web1</h1>";

    DWORD size = static_cast< DWORD >(strlen(header));
    pECB->WriteClient(pECB->ConnID, header, &size, 0);

    char *intro = "<p>Your name is: ";
    size = static_cast< DWORD >(strlen(intro));
    pECB->WriteClient(pECB->ConnID, intro, &size, 0);
    size = static_cast< DWORD >(
        strlen(pECB->lpszQueryString));
    pECB->WriteClient(pECB->ConnID, pECB->lpszQueryString,

        &size, 0);

    char *footer =
        "</p>"
        "</body>"
        "</html>";

    size = static_cast< DWORD >(strlen(footer));
    pECB->WriteClient(pECB->ConnID, footer, &size, 0);

    return HSE_STATUS_SUCCESS;

}

第3步:

创建Web1.def文件和GetExtensionVersion,TerminateExtension和HttpExtensionProc

第4步:

将':\ windows \ system32 \ inetsrv \ w3wp.exe'设置为项目的debuging命令,并将'-debug'设置为命令参数。

第5步:

在IIS中创建一个指向具有构建输出的目录的虚拟目录。

当我在调试模式下启动应用程序后通过浏览器触发请求时,我看到的只有500响应,输出中包含以下内容:

'w3wp.exe' (Win32): Loaded 'C:\Win32Project1\Win32Project1.dll'. Symbols loaded.

'w3wp.exe' (Win32): Unloaded 'C:\Win32Project1\Win32Project1.dll'

我错过了任何明显的步骤或做错了吗?非常感谢任何帮助/见解。

0 个答案:

没有答案