C中使用IIS作为文件服务器的实现方法 (c iis文件服务器)

在开发网络应用程序中,实现文件服务器是一个必不可少的任务。在C语言中,使用IIS( Internet Information Services )来实现文件服务器是一种较为高效和快速的方法。本文将介绍如何在C语言中使用IIS作为文件服务器的实现方法。

IIS简介

IIS是Windows操作系统中自带的一种Web服务器。可以用来提供网站、FTP、TP及其他Internet服务。IIS具有跨平台、高效性和易用性等优点,因此被广泛应用于互联网服务领域。

IIS的安装与配置

在开始使用IIS作为文件服务器之前,需要先确保安装了IIS。在Windows操作系统中,默认情况下已经安装了IIS。但是,如果没有安装,需要先进行手动安装。

要开始配置IIS,可以打开“控制面板”→“程序和功能”→“启用或关闭Windows功能”选项卡,然后勾选“Internet Information Services”并点击“确定”。

IIS配置完成后,需要对其进行一些相关的配置。在IIS管理器中,可以选择“站点”→“默认网站”→“绑定”,然后设置绑定的IP地址及端口。

IIS的使用

在C语言中使用IIS进行文件服务器操作,需要使用Windows API函数和COM组件。可以通过调用这些函数和组件来实现IIS请求和响应的过程。

在使用IIS前,需要通过编程设置好IIS的配置地址信息、端口号和虚拟目录。虚拟目录是IIS中存放文件的目录,可以通过如下代码进行设置:

“`C

IISSchema2Ptr spSchema2;

IIISWebServicePtr spWS(IID_IIISWebService);

spWS->get_Schema(&spSchema2);

IADMCOMAdminBasePtr spAdmin(IID_IADMCOMAdminBase);

spAdmin->GetAdminVersion(wszTargetServer, &dwVersion);

if (dwVersion >= IIS_VERSION_6_0)

{

WideString bstrPartition;

spWS->get_ServerComment(&bstrPartition);

UINT cBuffers = 0;

UINT cbTotalSize = 0;

DWORD dwAttributes = 0;

IIS_MD_RECORD mdRecord;

mdRecord.dwMDIdentifier = MD_VR_PATH;

mdRecord.dwMDAttributes = METADATA_INHERIT;

mdRecord.dwMDUserType = IIS_MD_UT_FILE;

mdRecord.dwMDDataType = STRING_METADATA;

mdRecord.dwMDDataLen = wcslen(wszDir) * sizeof(WCHAR);

mdRecord.pbMDData = (UCHAR*)wszDir;

mdRecord.dwMDDataTag = 0;

TCHAR szLocation[cchLocationMax];

DWORD cchLocation = ARRAYSIZE(szLocation);

HRESULT hr = GetLocationFromPath(

wszDir, // path to file system directory

cchLocation,

szLocation,

ARRAYSIZE(szLocation));

if (SUCCEEDED(hr))

{

IADMCOMObject* pObj = NULL;

spAdmin->GetObject(szLocation, &pObj);

if (pObj)

{

IIS_OPEN_OBJECT_PARAMETERS openParams;

DWORD dwLastChange = 0;

LPWSTR pwszKey = NULL;

hr = pObj->Open(

NULL,

_bstr_t(bstrPartition),

METADATA_PERMISSION_WRITE,

IMS_ADMINISTRATOR,

&openParams,

&dwLastChange,

&pwszKey);

if (SUCCEEDED(hr))

{

CMetabaseRecord dwRecord(MD_VR_PATH, wszDir, METADATA_INHERIT, IIS_MD_UT_FILE, STRING_METADATA);

hr = dwRecord.Set(pObj, openParams, pwszKey);

if (SUCCEEDED(hr))

hr = spAdmin->SaveData();

pObj->CloseKey(pwszKey);

}

pObj->Release();

}

}

}

“`

在设置好虚拟目录后,就可以使用如下代码进行请求和响应:

“`C

LPWSTR pszPath;

LPWSTR pszContent;

HRESULT hr = CHttpIP::Get(“localhost”, 80, “/test”, &pszPath, &pszContent);

if (SUCCEEDED(hr))

{

// process response data

wprintf(L”path=%s content=%s”, pszPath, pszContent);

delete pszPath;

delete pszContent;

}

“`

在这个例子中,Get()方法中的参数分别为目标服务器地址、端口号、请求地址和输出参数来存放请求的路径和响应数据。

IIS的优点和不足

IIS在实现文件服务器功能时,有以下几点优点:

1. 跨平台:IIS可以在多种操作系统上运行,可以支持Windows、Linux等多个操作系统。

2. 高效性:IIS是Windows操作系统自带的Web服务器,因此具有良好的操作系统集成性能。

3. 易用性:IIS具有简单易用的管理界面,可以很方便地进行管理和配置。

同时,IIS也具有一些不足之处,包括:

1. 安全性问题:IIS在不加安全设置的情况下,容易受到网络攻击。

2. 性能问题:IIS在处理大型文件时,容易出现性能瓶颈。

3. 配置问题:IIS在进行配置时,需要一定的网络技术基础和操作系统知识。

结语

IIS是一种高效、快速且易于使用的文件服务器实现方式。在C语言中使用IIS,需要调用Windows API函数和COM组件。使用IIS能够更好地组织和管理文件,并且可以提高网络通信能力,同时也要注意安全性和性能问题。

相关问题拓展阅读:

如何在win7上为IIS服务器配置SSL服务!

1.1 配置服务器证书

之一步:执行“开始à程序à管理工具àInternet服务管理器”,打开服务管理器。

第二步:右键单击需要采用SSL协议的WEB站点,选择“属性”,在Web站点选项视图中填写SSL端口为:443。(也可以根据需要修改端口)如图

第三步:选择“目录安全性”选项,第四步:选择服务器证书,单击下一步会出现设置IIS服务器证书向导,

第五步:选择“创建一个新证书”,然后跟随向导填写相关内容,生成证书申请书。用此申请书到CA签发服务器证书。注意在CA填写的证书申请信息一定要同此处填写的证书申请信息相同。

第六步:当证书签发完毕后,再次打开向导,现在里边的选项已经不同了,跟随向导将证书导入,关于每一步向导中都备有详细说明,这里不做赘述。

第七步:现在,你的服务器已经有了属于自己的证书,我们可以开始配置SSL选项。在“目录安全性”选项视图下的“安全通信”中选择“编辑”选项。如图

第八步:在此选择“申请安全通道(SSL)”项,就已经建立起SSL通道,在“客户证书”项下可以选择验证客户证书的具体方式,“忽略客户证书”是不要求验证客户证书,“接收客户证书”是用证书验证拥有证书的客户,没有证书的客户按其他方法来验证。“申请姿则客户证书”是只与拥有证书的客户进行通迹氏棚信。我们可以根据需要来进行选择。对于双向验证要求选择“申请客户证书”。

第九步:在服务端导入CA根证书

在IIS服务器上,双击打开CA的根证书(必须是签发IIS服务器证书的CA)。CA的

根证书可以从CA的网站上下载

单击安装证书,出现安装证书向导

单击下一步选择证书存储区域,

选择“将所有证书放入下列存储区域”,单击“浏览”出现选择存储区域对话框,

选中“显示物理存储区”后,选择“受信任的根证书颁发机构->本地计算机”,单击确定。

显示我们刚刚选择的路径,单击下一步,显示我们刚刚做过的设置

单击完成按钮,导入CA根证书完成。

第十步:取消IIS对CRL列表信息的校验

在公安PKI/PMI体系中,对于证书有效性的验证在应用程序中进行。故需要取消IIS自身对CRL的检验。

在控制台下进入C:\Inetpub\AdminScripts目录(这个目录在安装完IIS后会自动生成)

执行如下命令,核孝取消IIS对CRL的校验:

cscript adsutil.vbs set w3svc/certcheckmode 1

安装好IIS后,然后雹没去Gworg申请SSL证书,拿到SSL后根据教程安装:

网森姿页链源春纳接

ASP配置IIS服务器的注意事项

对于配置IIS服务器 我想大家也许有不是很明白的地方 下面介绍ASP配置IIS服务器时需要注意的地方 把好安全关是所有网站都必须要做好的功课 如果服务器本身不安全 给网站带来的将是轮散毁腊前氏灭性的

  

一 操作系统的安装

  我这里说的操作系统以Windows 为例 高版本的Windows也有类似功能

  格式化硬盘悔神时候 必须格式化为NTFS的 绝对不要使用FAT 类型

  C盘为操作系统盘 D盘放常用软件 E盘网站 格式化完成后立刻设置磁盘权限 C盘默认 D盘的安全设置为Administrator和System完全控制 其他用户删除 E盘放网站 如果只有一个网站 就设置Administrator和System完全控制 Everyone读取 如果网站上某段代码必须完成写操作 这时再单独对那个文件所在的文件夹权限进行更改

  系统安装过程中一定本着最小服务原则 无用的服务一概不选择 达到系统的最小安装 在安装IIS的过程中 只安装最基本必要的功能 那些不必要的危险服务千万不要安装 例如 FrontPage 服务器扩展 Internet服务管理器(HTML) FTP服务 文档 索引服务等等

  

二 网络安全配置

  网络安全最基本的是端口设置 在 本地连接属性 点 Internet协议(TCP/IP) 点 高级 再点 选项 TCP/IP筛选 仅打开网站服务所需要使用的端口 配置界面如下图

  进行如下设置后 从你的服务器将不能使用域名解析 因此上网 但是外部的访问是正常的 这个设置主要为了防止一般规模的DDOS攻击

  

三 安全模板设置

  运行MMC 添加独立管理单元 安全配置与分析 导入模板basicsv inf或者securedc inf 然后点 立刻配置计算机 系统就会自动配置 帐户策略 本地策略 系统服务 等信息 一步到位 不过这些配置可能会导致某些软件无法运行或者运行出错

  

四 WEB服务器的设置

  以IIS为例 绝对不要使用IIS默认安装的WEB目录 而需要在E盘新建立一个目录 然后在IIS管理器中右击主机 >属性 >WWW服务 编辑 >主目录配置 >应用程序映射 只保留asp和asa 其余全部删除

  

五 ASP的安全

  在IIS系统上 大部分木马都是ASP写的 因此 ASP组件的安全是非常重要的

  ASP木马实际上大部分通过调用Shell Application WScript Shell WScript Neork FSO Adodb Stream组件来实现其功能 除了FSO之外 其他的大多可以直接禁用

  WScript Shell组件使用这个命令删除 regsvr WSHom ocx /u

  WScript Neork组件使用这个命令删除 regsvr wshom ocx /u

  Shell Application可以使用禁止Guest用户使用shell dll来防止调用此组件 使用命令 cacls C \WINNT\system \shell dll /e /d guests

  禁止guests用户执行cmd exe的命令是 cacls C \WINNT\system \Cmd exe /e /d guests

  FSO组件的禁用比较麻烦 如果网站本身不需要用这个组件 那么就通过RegSrv scrrun dll /u命令来禁用吧 如果网站本身也需要用到FSO 那么请参看这篇文章

lishixinzhi/Article/program/net/202311/11873

windows专业版中安装和配置iis的方法和具体步骤是什么?

要建站 建议用专业版xp

实在需要的话

可能有帮助

Windows XP home 安装iis

常见的Windows XP有改凳两个版本,Professional和Home版。这两个版本大体上

是相同的,只是在细节方面,Professional版比Home版多了一些功能。例如

Professional版的XP支持双CPU,多国语言,加御态入域,EFS文件加密,以及IIS

(Internet Information Services)。但是用过Windows XP Home Edition(家

庭版)的朋友都会遗憾,这个系统平台没有IIS组件的安装选项,也不支持PWS

(Personal Web Server),因此无法建立Web服务器来学习调试ASP动态网页。不

过令人庆幸的是,国外已有行家琢磨出了一个让IIS落户WinXP 家庭版的解决方法

解决的思路是通过编辑Windows 组件配置文件,在Windows组件中恢复IIS安

装,再按正常的方法添加IIS,详细步骤包括:

1、在X:\Windows\inf目录(X为Windows XP的盘符)下打开安装信息文件

sysoc.inf,

在区域中找到iis=iis.dll,OcEntry,iis.inf,hide,7这一行。

可以发现,WinXP 家庭版是把IIS组件安装选项隐藏了,因此要把该信息改为

iis=iis.dll,OcEntry,iis2.inf,,7,保存退出。

2、在Windows 2023安装光盘(Professional、Server、Advanced Server版本都

可以)中找到iis.dl_和iis.if_两个文件,一起拷贝到硬盘某个目录(如C:\)。

打开开始菜单中的“命令提示符”,使用Expand命令解开iis.dl_和iis.if_,命

令格式为:

expand C:\iis.dl_ C:\iis2.dll

expand C:\iis.in_ C:\iis2.inf

完成后,C盘目录下会生成iis2.dll和iis2.inf两个新文件。

3、最后,分别将iis2.dll和iis2.inf两个文件相应拷入X:\Windows\inf和

X:\Windows\system32\Setup系统目录。

至此,在“添加/删除程序”中点击“添加/删除Windows组件”,你会兴奋的发现

,久违的Internet信息服务(IIS)重新出现了!接下来就是循规蹈矩安装IIS。

但需要提醒一点,在安装过程中若跳出定位相关文件时,请把目录指向Windows

2023安装光盘下的I386目录。

好了,再请大家镇歼源注意,在Windows XP家庭版、专业版中安装的IIS,同时并发连接

数限制了只有10个,因此建议想用IIS搭建Web服务器学习ASP的朋友,更好选用

Windows 2023 Advanced Server系统平台。

在windows xp下安装了iis后,只支持一个站点,而且没有站点管理,更大只能建

立10个并发连接。总之,xp的home与Professional版本,毕竟是工作站操作系统

而不是服务器平台。如果你喜欢玩,那么就凑合着用xp吧

IIS安装包

有些同学想用自己的电脑做服务器,测试一些asp程序,可是自己没有windows安装光盘.

关于c iis文件服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » C中使用IIS作为文件服务器的实现方法 (c iis文件服务器)