『贴代码』
我的博文
个人作品
优选问答
「搜索」
【本期话题】更多
三人寄语更多
实际遇到的问题往往在那些视频课程中是不会出现的!
点赞:0
时好时坏的结果,往往是多线程引起的逻辑混乱导致的!
点赞:0
你连F12都不关注,你好意思说你是前端?
点赞:0
谋而后动,往往会让你对自己的代码更具信心!
点赞:1
由于时间的问题,我们往往会给自己埋坑,等着后续或者下一任来填!
点赞:0
慎用redis的同步我的意见是redis都走异步!!!
点赞:0
抛开需求谈架构是无意义的事情!
点赞:0
设置后,UI不会变更,要不给他一个SetTimeout试试,原因自己想
点赞:0
抛开需求讲架构,和纸上谈兵无差!
点赞:1
需求就是系统的千年杀,相爱相杀那种!
点赞:0
记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-Web.IIS.Administration解读(5
尘埃 2025-04-06 33 5 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版本的初步效果,敬请期待!
```

评论列表
尘埃
5 33 0
快捷注册
热门推荐更多
PasteSpiderFile
PasteSpider的项目文件客户端,开发中能够快速发布!;
最新动态
  • 152.****.72 正在查看 PasteSpider中关于Nginx的配置,安装PasteSpider之后查阅 !
  • 107.****.155 正在查看 贴代码框架PasteForm特性介绍之query,linkquery(参数,传递参数) !
  • 107.****.155 正在查看 贴代码框架PasteForm特性介绍之query,linkquery(参数,传递参数) !
  • 178.****.162 正在查看 PasteSpider更新摘要 !
  • 178.****.162 正在查看 在centos7中安装docker !
  • 178.****.162 正在查看 PasteSpider中如何同步文件到服务器包含PasteSpiderFile的下载 !
  • 178.****.162 正在查看 在Centos7中安装Nginx !
  • 178.****.162 正在查看 在Docker中安装postgresql数据库! !
  • 232.****.231 正在查看 PasteSpiderV5版本更新内容一览 !
  • 232.****.231 正在查看 PasteSpiderV5版本更新内容一览 !
  • 112.****.223 正在查看 Serilog在appsettings.json中的配置 !
欢迎加入QQ讨论群 296245685 [PasteSpider]介绍 [PasteForm]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2