0

我正在 IIS7 中部署一个 ASP.NET MVC3 应用程序。我已经部署了其他应用程序,但它们从未使用过 App_Data 文件夹或任何其他组件,例如 Interop 库。

我使用了一键式部署并起诉了默认应用程序池。当我启动应用程序时,我立即收到一条错误消息:

[网络访问]抱歉,处理您的请求时出错。

[从 IIS7 浏览]找不到路径“D:\Data\Apps\OppUpdate\App_Data\Test.xlsx”的一部分。

然后我在部署目录中手动添加了 App_Data 文件夹,应用程序会定期启动。然后,当涉及到使用 Interop 库的任务时,我收到以下错误:

[网络访问]抱歉,处理您的请求时出错。

[从 IIS7 浏览]检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

使用一键部署时,有什么方法可以自动添加 App_Data 文件夹?如何注册互操作服务?

谢谢,

弗朗切斯科

4

1 回答 1

0

显然,该问题与 Server 2008 有关。要在服务器端执行的 Excel 应用程序会触发安全弹出窗口,该弹出窗口现在存在于 MS OS 中,例如 Win 7 和 Vista。这是用户每次运行应用程序时向他们显示的对话框,并警告他们不受信任的应用程序可能给他们的 PC 带来的损害。显然,当应用程序(在本例中为 Excel)由另一个应用程序(在本例中为 Web 应用程序)运行时,不会弹出对话框并且服务器未获得运行 Excel 的授权。

Microsoft IIS & Excel 中这个骇人听闻的 BUG 的解决方案非常棒:

创建目录“C:\Windows\SysWOW64\config\systemprofile\Desktop” 为目录 Desktop 设置完全控制权限(例如在 Win7 & IIS 7 & DefaultAppPool 中为用户“IIS AppPool\DefaultAppPool”设置权限)

来源:http ://forums.iis.net/t/1148371.aspx

于 2011-05-24T08:34:15.227 回答