在IIS中出现System.IO.FileNotFoundException但Visual Studio本地运行正常
Word转.dat应用IIS部署后上传按钮报错问题
问题描述
- 开发了一个将Word文件转换为.dat文件的应用,通过
UploadController.cs处理文件上传与转换逻辑 - Visual Studio本地运行正常,但发布到IIS后,点击对应上传按钮出现错误(错误截图:[IIS上的错误])
排查与解决步骤
检查IIS应用池权限
- 确保应用池身份对上传目录、转换临时目录拥有读写权限。本地开发使用当前用户权限,而IIS默认应用池身份(如
ApplicationPoolIdentity、Network Service)权限可能不足 - 操作路径:右键目标网站→管理网站→高级设置,查看关联应用池;进入IIS应用池列表,找到对应池右键→高级设置,修改身份为具备足够权限的账号,或直接给目标目录添加应用池身份的读写权限
- 确保应用池身份对上传目录、转换临时目录拥有读写权限。本地开发使用当前用户权限,而IIS默认应用池身份(如
替换或确认转换依赖组件
- 若使用
Microsoft.Office.Interop.Word这类Office互操作组件,IIS服务器可能未安装对应版本Office,或组件未正确注册,这类组件在服务器环境兼容性极差 - 建议替换为无需安装Office的开源组件,比如
DocX,避免服务器环境的依赖问题
- 若使用
调整文件上传大小限制
- IIS默认限制上传文件大小,超出会触发错误。在站点的
web.config中添加或修改如下配置:<system.web> <httpRuntime maxRequestLength="1048576" /> <!-- 单位KB,此处设置为1GB --> </system.web> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="1073741824" /> <!-- 单位字节,此处设置为1GB --> </requestFiltering> </security> </system.webServer>
- IIS默认限制上传文件大小,超出会触发错误。在站点的
查看详细错误日志
- 打开IIS管理器,选中目标站点点击“日志”,查看最新日志文件,找到报错请求的错误代码与详细信息
- 打开Windows事件查看器,查看“应用程序”日志,获取应用抛出的具体异常信息,精准定位代码问题
确认临时目录配置
- 若应用使用临时目录存储上传的Word文件,需确保路径为绝对路径且IIS有权限访问,避免使用相对路径或本地开发时的用户专属目录(如
C:\Users\XXX\Temp)
- 若应用使用临时目录存储上传的Word文件,需确保路径为绝对路径且IIS有权限访问,避免使用相对路径或本地开发时的用户专属目录(如
内容的提问来源于stack exchange,提问作者Swapnil Mahajan
相关产品推荐
相关产品推荐

