Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用网络服务用户访问powerpoint互操作_Asp.net_Networking_Service_Interop_Powerpoint - Fatal编程技术网

Asp.net 使用网络服务用户访问powerpoint互操作

Asp.net 使用网络服务用户访问powerpoint互操作,asp.net,networking,service,interop,powerpoint,Asp.net,Networking,Service,Interop,Powerpoint,我在使用网络服务作为IIS标识并使用Microsoft Powerpoint Interop DLL的ASP web应用程序中遇到问题 我有一台Windows7计算机作为服务器和开发机器 我需要使用此用户访问应用程序中的LAN资源 问题是,当我们使用powerpoint interop DLL时(我们已经了解到Microsoft不建议将其用于Web应用程序,但目前我们必须重用其他本地应用程序中的代码)在调用Slide Shapes.AddPicture方法调试应用程序时,创建powerpoint

我在使用网络服务作为IIS标识并使用Microsoft Powerpoint Interop DLL的ASP web应用程序中遇到问题

我有一台Windows7计算机作为服务器和开发机器

我需要使用此用户访问应用程序中的LAN资源

问题是,当我们使用powerpoint interop DLL时(我们已经了解到Microsoft不建议将其用于Web应用程序,但目前我们必须重用其他本地应用程序中的代码)在调用Slide Shapes.AddPicture方法调试应用程序时,创建powerpoint文件的方法似乎处于空闲状态

如果我删除这条语句,互操作会很好地工作并创建文件,但我不知道为什么不工作

我按照本论坛中的说明配置了DCOM服务组件:

这样做:

  • 在DCOMCNFG中,右键单击“我的电脑”,然后选择“属性”
  • 选择COM证券选项卡
  • 在访问权限中,单击“编辑默认值”,向其添加网络服务,并授予其“允许本地访问”权限。对\用户执行同样的操作
  • 在启动和激活权限中,单击“编辑默认值”并向其添加网络服务,并授予其“本地启动”和“本地激活”权限。对\用户执行相同的操作
  • 按OK,就这样

    此外,我还遵循了以下说明:

    “Ogawa Hack”摘要:为系统配置文件创建桌面文件夹,如下所示: C:\Windows\System32\config\systemprofile\Desktop 如果在64位计算机上运行,请创建另一台,如下所示: C:\Windows\SysWOW64\config\systemprofile\Desktop 此外,文件夹需要对“驾驶”Office的任何用户具有写入权限

    总之,我的代码中的以下语句存在权限问题:

    Shape shape = slide.Shapes.AddPicture(fileName, MsoTriState.msoFalse, MsoTriState.msoTrue,
        pptBoxOffsetX,
        pptBoxOffsetY, 
        pptBoxShapeDimensionX,  
        pptBoxShapeDimensionY);
    
    我还对filename参数中使用的文件夹拥有完全控制权(network service user的读写权限),但没有成功的结果。 我认为这是一个权限问题,因为如果我将IIS标识更改为本地用户名(是管理员帐户),而不是网络服务,则此语句有效,web应用程序执行我需要的操作。 因此,为了使用网络服务帐户作为IIS标识成功调用AddPicture方法,需要配置更多的内容。奇怪的是,互操作方法slide.Shapes.AddShape正在工作,而AddPicture没有。 任何帮助都将不胜感激。
    提前感谢

    确切地说,这是一个权限问题,我将网络服务用户更改为机器中的管理员,并且所有操作都很完美,因此,Powerpoint互操作库的AddPicture方法使用了某些功能,普通用户/管理员用户可以毫无问题地执行这些功能,而网络服务用户在某些地方没有所需的权限。问题是,我应该在哪里改变,改变什么?感谢在授予管理员权限之前,我尝试添加整个C:单元和所有本地单元以完全控制netwrok服务用户,但没有成功。我还试图完全控制windows注册表的根文件夹,但也没有成功。我读过关于让网络服务与桌面交互的文章,现在我正以这种方式工作,但我不知道如何在Windows7中配置它。