『贴代码』
技术分享
精选作品
优选问答
成长笔记
记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-Web.IIS.Administration解读(5
尘埃 2025-04-06 1740 87 0

更多PasteSpider的操作介绍,请前往 PasteSpider操作文档


本文记录了PasteSpider在Windows IIS开发过程中的一些关键问题和思考。虽然最终的应用成果很重要,但开发过程中遇到的问题和解决方案往往更具价值。通过实际项目的历练,我深刻体会到案例项目与实际项目之间的巨大差异。

PasteSpider是一款专为开发者设计的部署工具,新版本支持Windows和Linux系统。通过PasteSpider,开发者可以快速将服务部署到IIS、Linux Service、Docker、Podman、Windows Service等平台上。

在上一篇文章中,我介绍了如何通过贴代码框架中的dynamicform直接编辑JSON内容,并通过动态表配置实现中文显示、字数限制、下拉菜单等功能。本文将重点讲述我为何决定放弃使用***Web.IIS.Administration***。

### 背景
按照最初的设计,PasteSpider的Windows版本需要用户在服务器上安装官方的Microsoft.Web.IIS.Administration,然后通过调用其提供的Rest API来管理IIS。然而,在实际开发过程中,我遇到了一个棘手的问题。

### 遇到的问题
在创建网站时,系统返回了以下错误信息:
```json
{
    "title": "Forbidden",
    "name": "physical_path",
    "detail": "D:\\spider\\iisweb\\abc\\api\\default\\app_11",
    "status": "403"
}

问题分析与解决方案

看到403错误,我首先想到的是权限问题。于是,我开始逐一排查可能的原因:

  1. Microsoft.Web.IIS.Administration的权限
    该服务是以SYSTEM用户身份运行的,理论上拥有最高权限,因此问题可能不在此。

  2. PasteSpider的权限
    PasteSpider是以当前用户身份部署在IIS上运行的,并通过全权限的Access_Token访问Microsoft.Web.IIS.Administration。理论上,权限应该绑定在Access_Token上,因此问题可能也不在此。

  3. 文件夹权限
    网站的文件夹是由PasteSpider创建的,理论上权限应该没有问题。

  4. IIS程序池权限
    这是最有可能的问题。IIS在启动网站时,程序池可能对文件夹的权限不足。因为程序池在网站创建之前就已经存在,实际运行时,网站是由程序池执行的。

使用DeepSeek寻找答案

根据上述思路,我通过DeepSeek询问了相关问题,并得到了详细的解决方案。以下是DeepSeek提供的解决步骤:

  1. 检查文件夹是否存在
    确认路径是否存在,若不存在则创建。

  2. 检查文件夹权限
    确保IIS_IUSRSIIS APPPOOL\YourAppPoolName(应用程序池名称)具有读取权限。

  3. 检查应用程序池身份
    确认应用程序池的身份设置,确保其具有文件夹权限。

  4. 检查IIS配置
    确保物理路径配置正确。

  5. 检查父文件夹权限
    确保父文件夹对IIS_IUSRS或应用程序池身份有读取权限。

  6. 检查Web.config文件
    确保没有权限限制的配置。

  7. 重启IIS
    使用iisreset命令重启IIS。

  8. 测试访问
    在浏览器中访问网站,确认问题是否解决。

  9. 检查IIS日志
    如果问题仍未解决,查看IIS日志以获取更多信息。

测试与验证

尽管按照上述步骤进行了配置,问题依然存在。于是,我尝试使用PowerShell来创建网站,结果发现PowerShell可以成功创建网站。然而,这带来了新的问题:PasteSpider需要以管理员身份运行,这意味着它不能部署在IIS内,而必须以控制台模式或Windows Service模式运行。

深入源码

为了进一步排查问题,我下载了Microsoft.Web.IIS.Administration的源码,发现其权限检查依赖于配置文件中的设置。这意味着在安装Microsoft.Web.IIS.Administration后,用户需要手动修改配置文件,这无疑增加了使用复杂度。

总结

经过一番折腾,我决定对PasteSpider的Windows版本进行如下调整:

  1. 以管理员身份运行:PasteSpider将以Windows Service的方式运行。
  2. 灵活的部署方式:用户项目可以选择以IIS或Windows Service的方式运行。

下一篇文章将展示PasteSpider Windows版本的初步效果,敬请期待!
```

评论列表
尘埃
87 1740 0
快捷注册
热门推荐更多
PasteDocument
贴代码PasteForm框架配套的在线文档,使用者在操作系统的时候只要点击表单字段的名词后面的"?"即可查看对应字段的说明,案例,注意事宜等!;
用户问答更多
07月份版本的内存占用比以前大了,也没有泄漏,啥情况?以前200MB,这个版本能到300MB
文档中的组织归属有些问题,啥时候看看,更新更新!
  • 已经升级了,主要是left join的查询的时候没有过滤,其实这个问题,多租户也是一样的!

PasteSpider的集群方式,我还是没太懂,啥时候出一个专题来讲解讲解?
  • b不难吧,就几个地址!

最新动态
  • 113.****.44 正在查看 在Docker中安装postgresql数据库! !
  • 216.****.99 正在查看 文章列表页 !
  • 8.****.5 正在查看 Document:spider !
  • 121.****.69 正在查看 免费SSL证书,自动续期配置,配合PasteSpider的路由策略,用得飞起 !
  • 180.****.250 正在查看 主页spider !
  • 94.****.213 正在查看 文章列表页 !
  • 162.****.32 正在查看 主页spider !
  • 94.****.198 正在查看 PasteSpider部署工具介绍,为啥说是开发专属部署工具,看这篇就够了! !
  • 147.****.242 正在查看 主页spider !
  • 113.****.1 正在查看 主页talk !
  • 122.****.171 正在查看 项目列表页 !
欢迎加入QQ讨论群 296245685 [PasteSpider]介绍 [PasteForm]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2