『贴代码』
我的博文
个人作品
优选问答
「搜索」
【本期话题】更多
三人寄语更多
抛开需求谈架构是无意义的事情!
点赞:0
谋而后动,往往会让你对自己的代码更具信心!
点赞:1
你连F12都不关注,你好意思说你是前端?
点赞:0
能通过内网IP访问的,尽量不要使用域名访问!
点赞:1
一些奇奇怪怪的问题,一般和异步有关!
点赞:0
对于答案来说,更重要的是找到答案的这个过程而不是答案本身!
点赞:0
实际遇到的问题往往在那些视频课程中是不会出现的!
点赞:0
往往会为了一个项目,搭建适合他专属的脚手架!
点赞:1
慎用redis的同步我的意见是redis都走异步!!!
点赞:0
微信的app这个东西很鬼,有时候你刷新页面,会造成部分数据重置,部分不重置,不妨试试把对象放app.globalData里面去,会有意外惊喜!
点赞:0
记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-Web.IIS.Administration解读(5
尘埃 2025-04-06 834 72 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版本的初步效果,敬请期待!
```

评论列表
尘埃
72 834 0
快捷注册
热门推荐更多
PasteForm
贴代码框架的项目案例,里面有PasteForm的案例代码等;
最新动态
  • 54.****.75 正在查看 在Linux上以Systemd的方式运行PasteSpider !
  • 231.****.198 正在查看 在Linux上以Systemd的方式运行PasteSpider !
  • 231.****.198 正在查看 在Linux上以Systemd的方式运行PasteSpider !
  • 66.****.192 正在查看 框架PasteForm实际开发案例,换个口味显示数据,支持echarts,只需要标记几个特性即可在管理端显示(2) !
  • 66.****.192 正在查看 框架PasteForm实际开发案例,换个口味显示数据,支持echarts,只需要标记几个特性即可在管理端显示(2) !
  • 216.****.214 正在查看 开发者部署工具PasteSpiderV5新版本更新内容 !
  • 216.****.214 正在查看 记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-动态表单(2) !
  • 216.****.214 正在查看 记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-效果展示(4) !
  • 63.****.58 正在查看 PasteSpider的测试环境之在Docker中安装centos7并设定SSH的密码 !
  • 63.****.58 正在查看 PasteSpider的测试环境之在Docker中安装centos7并设定SSH的密码 !
  • 155.****.80 正在查看 框架PasteForm实际开发案例,支持多级对象的表单看看有多简单只要几个特性即可!(1) !
欢迎加入QQ讨论群 296245685 [PasteSpider]介绍 [PasteForm]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2