当前位置:编程学习 > C#/ASP.NET >>

[紧急]asp.net 生成PPT在IIS环境下无效果VS中可以

这个是大家一般都使用的生成PPT的代码

但是在 VS2005中运行是可以的, 如果把他架设到IIS就没有效果了,请问是怎么回事啊  ,紧急  谢谢大家

using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Graph = Microsoft.Office.Interop.Graph;
using System.Runtime.InteropServices;
 


代码如下:
GC.Collect();
        String strTemplate, strPic;
        strTemplate =
          "D:\\OLD\\Temp\\12345.ppt";
        strPic = "D:\\OLD\\Temp\\12345.jpg";
        bool bAssistantOn;

        PowerPoint.Application objApp;
        PowerPoint.Presentations objPresSet;
        PowerPoint._Presentation objPres;
        PowerPoint.Slides objSlides;
        PowerPoint._Slide objSlide;
        PowerPoint.TextRange objTextRng;
        PowerPoint.Shapes objShapes;
        PowerPoint.Shape objShape;
        PowerPoint.SlideShowWindows objSSWs;
        PowerPoint.SlideShowTransition objSST;
        PowerPoint.SlideShowSettings objSSS;
        PowerPoint.SlideRange objSldRng;
        Graph.Chart objChart;

        //Create a new presentation based on a template.
        objApp = new PowerPoint.Application();
        objApp.Visible = MsoTriState.msoTrue;
        objPresSet = objApp.Presentations;
        objPres = objPresSet.Open(strTemplate,
            MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
        objSlides = objPres.Slides;

        //Build Slide #1:
        //Add text to the slide, change the font and insert/position a 
        //picture on the first slide.
        objSlide = objSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
        objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
        objTextRng.Text = "My Sample Presentation";
        objTextRng.Font.Name = "Comic Sans MS";
        objTextRng.Font.Size = 48;
        objSlide.Shapes.AddPicture(strPic, MsoTriState.msoFalse, MsoTriState.msoTrue,
            150, 150, 500, 350);

        //Build Slide #2:
        //Add text to the slide title, format the text. Also add a chart to the
        //slide and change the chart type to a 3D pie chart.
        objSlide = objSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
        objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
        objTextRng.Text = "My Chart";
        objTextRng.Font.Name = "Comic Sans MS";
        objTextRng.Font.Size = 48;
        objChart = (Graph.Chart)objSlide.Shapes.AddOLEObject(150, 150, 480, 320,
            "MSGraph.Chart.8", "", MsoTriState.msoFalse, "", 0, "",
            MsoTriState.msoFalse).OLEFormat.Object;
        objChart.ChartType = Graph.XlChartType.xl3DPie;
        objChart.Legend.Position = Graph.XlLegendPosition.xlLegendPositionBottom;
        objChart.HasTitle = true;
        objChart.ChartTitle.Text = "Here it is...";

        //Build Slide #3:
        //Change the background color of this slide only. Add a text effect to the slide
        //and apply various color schemes and shadows to the text effect.
        objSlide = objSlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank);
        objSlide.FollowMasterBackground = MsoTriState.msoFalse;
        objShapes = objSlide.Shapes;
        objShape = objShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect27,
          "The End", "Impact", 96, MsoTriState.msoFalse, MsoTriState.msoFalse, 230, 200);

        //Modify the slide show transition settings for all 3 slides in
        //the presentation.
        int[] SlideIdx = new int[3];
        for (int i = 0; i < 3; i++) SlideIdx[i] = i + 1;
        objSldRng = objSlides.Range(SlideIdx);
        objSST = objSldRng.SlideShowTransition;
        objSST.AdvanceOnTime = MsoTriState.msoTrue;
        objSST.AdvanceTime = 3;
        objSST.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut;

        //Prevent Office Assistant from displaying alert messages:
        bAssistantOn = objApp.Assistant.On;
        objApp.Assistant.On = false;

        //Run the Slide show from slides 1 thru 3.
        objSSS = objPres.SlideShowSettings;
        objSSS.StartingSlide = 1;
        objSSS.EndingSlide = 3;
        objSSS.Run();

        //Wait for the slide show to end.
        objSSWs = objApp.SlideShowWindows;
        while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(100);

        //Reenable Office Assisant, if it was on:
        if (bAssistantOn)
        {
            objApp.Assistant.On = true;
            objApp.Assistant.Visible = false;
        }

        //Close the presentation without saving changes and quit PowerPoint.
       objPres.Close();
        objApp.Quit();

--------------------编程问答-------------------- 高人啊……高人……坐等高人…… --------------------编程问答--------------------
引用 1 楼 xingzhiasa 的回复:
高人啊……高人……坐等高人……


等高人啊! --------------------编程问答-------------------- 默默的帮顶  --------------------编程问答-------------------- 是否是权限设置问题
--------------------编程问答-------------------- iis设置有问题? --------------------编程问答-------------------- 微软不支持在服务器端运行Office
参考http://support.microsoft.com/kb/257757 --------------------编程问答-------------------- 权限上的问题。在就是看下你服务器上装了office没
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,