asp.net发布到iis后到处excel程序运行出错,问题解决记录

   最近开始专做web开发,总是遇到比较怪的问题,现在把其中一件写出来(对iis了解比较少,需要提高)

   C#写的一个导出到excel的程序,已发布到iis上就会出错,今天查出了问题:具体解决办法如下:(摘抄自net,自己亲身测试过可行)

   文章1:  检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。具体解决方法如下:1:在服务器上安装office的Excel软件.2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框5:点击"标识"标签,选择"交互式用户"6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.这样,我们便配置好了相应的Excel的DCOM权限.注意:这是在WIN2003上配置的,在2000上,可能是配置ASPNET用户由于EXCEL是在服务器上打开的,所以应该写一个把导出数据保存在服务器上,然后再传递给客户端的方法,最后每次调用这个功能的时候再删除以前在服务器上所生成的所有Excel

 文章2:在创建 EXCEL 应用程序时出现错误:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

解决办法: 配置 DCOM 中 EXCEL 应用程序:

要在交互式用户帐户下设置 Office 自动化服务器,请按照下列步骤操作:

1.以管理员身份登录到计算机,并使用完整安装来安装(或重新安装)Office。为了实现系统的可靠性,建议您将 Office CD-ROM 中的内容复制到本地驱动器并从此位置安装 Office。
2.启动要自动运行的 Office 应用程序。这会强制该应用程序进行自我注册。
3.运行该应用程序后,请按 Alt+F11 以加载 Microsoft Visual Basic for Applications (VBA) 编辑器。这会强制 VBA 进行初始化。
4.关闭应用程序,包括 VBA。
5.单击开始,单击运行,然后键入 DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:
Microsoft Access 97 - Microsoft Access 数据库
Microsoft Access 2000/2002 - Microsoft Access 应用程序
Microsoft Excel 97/2000/2002 - Microsoft Excel 应用程序
Microsoft Word 97 - Microsoft Word Basic
Microsoft Word 2000/2002 - Microsoft Word 文档
单击属性打开此应用程序的属性对话框。
6.单击安全选项卡。验证使用默认的访问权限使用默认的启动权限已选中。
7.单击标识选项卡,然后选择交互式用户
8.单击确定,关闭属性对话框并返回主应用程序列表对话框。
9.DCOM 配置对话框中,单击默认安全性选项卡。
10.单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename> *
IWAM_<machinename> *

*
这些帐户仅在计算机上安装了 Internet Information Server (IIS) 的情况下才存在。
11.确保允许每个用户访问,然后单击确定
12.单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename> *
IWAM_<machinename> *

*
这些帐户仅在计算机上安装有 IIS 的情况下才存在。
13.确保允许每个用户访问,然后单击确定
14.单击确定关闭 DCOMCNFG。
文章3:

一个web程序需要操作Excel文件,在开发环境下程序测试正常,部署到IIS后程序操作Excel文件,IIS报错。
IIS提示信息如下:
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}/ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
 
―――――――――――――――――――――――――――――――――
经分析是asp.Net运行时权限不足。
解决方法如下:
1、使用模拟帐户,在Web.config文件中加入
<!identity impersonate="true" userName="administrator" password="******"/>
2、在DCOM组件服务中给MICROSOFT.EXCEL组件赋予ASP.NET的操作权限,具体步骤:
(1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口
(2)展开计算机-〉我的电脑-〉DCOM配置,找到Microsoft Excel应用程序节点
(3)单击右键-〉属性,选中“安全”选项,在下面三个项目都选择“自定义”,并单击编辑按钮
(4)在启动权限对话框中点击添加按钮,添加相应的用户(注意:如果是WIN2000,XP,则添加“机器名/ASPNET”用户,我这里是以WIN2003为例,WIN2003是添加“NETWORK Service”用户),
并赋予最大权限


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS2022发布ASP.NET Core应用到IIS需要按照以下步骤进行操作: 1. 打开你的ASP.NET Core项目,并且确保选择了正确的发布配置(如Release)。 2. 在Visual Studio的顶部菜单,选择“生成(Build)”并点击“发布(Publish)”。 3. 在弹出的“发布目标(Publish target)”窗口,选择“文件系统(File System)”作为发布目标,并设置一个输出目录,例如:C:\Publish。 4. 在左侧的菜单,展开“设置(Settings)”并选择“配置文件(Profile)”。 5. 点击“新建(New)”创建一个新的发布配置。 6. 在“发布配置(Publish Profile)”窗口,选择“自定义(Custom)”作为发布方式,并点击“下一步(Next)”。 7. 在“自定义发布目标(Customize Publishing Target)”窗口,选择“Web Deploy Package”作为发布方式,并点击“完成(Finish)”。 8. 在“目标文件夹(Target Folder)”一栏,设置一个用于保存Web Deploy包文件的目录,例如:C:\Publish\Package。 9. 点击“保存(Save)”按钮保存发布配置。 10. 返回到“发布目标(Publish target)”窗口,并选择刚刚创建的发布配置。 11. 点击“发布(Publish)”按钮开始发布。 12. 发布完成后,在输出目录会生成一个Web Deploy包文件(.zip)。你可以将这个包文件复制到目标服务器上。 13. 在目标服务器上,打开IIS管理器。 14. 在左侧的菜单,找到你想要部署应用的站点,并右键点击选择“添加应用(Add Application)”。 15. 在“添加应用(Add Application)”窗口,设置一个别名(Alias)和应用程序池(Application Pool),并指定刚刚复制的Web Deploy包文件的路径。 16. 点击“确定(OK)”按钮完成应用程序的部署。 这样,你的ASP.NET Core应用就成功发布到了IIS上。请注意,确保目标服务器上已安装了适当的.NET Core运行时,并且应用程序池的.NET CLR版本设置正确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值