刚上班就遇到一个郁闷的问题 高手指点下好吗?

生活 2010-01-04 11:25:12
以下这段代码 在vs运行条件下 可以通过,但是发布到本地机IIS上就会报错,
消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

行 56: ref missing, ref missing, ref missing);
行 57:
行 58: aDoc.PageSetup.PageHeight = 1050.0F;
行 59: aDoc.PageSetup.PageWidth = 710.0F;
行 60: aDoc.PageSetup.TopMargin = 5;

堆栈跟踪:


[COMException (0x8001010a): 消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))]
Microsoft.Office.Interop.Word.DocumentClass.get_PageSetup() +0
MyFaxWin.MSearch.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\liten000\桌面\新建文件夹\MyFaxWin\MSearch.aspx.cs:58
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061



string path = "D:\11.doc"
protected void Page_Load(object sender, EventArgs e)
{

ExpertControl(this, path);

object fileName = path;
object read_only = false;
object visible = true;
object isFalse = false;

// the way to handle parameters you don't care about in .NET
object missing = System.Reflection.Missing.Value;

//Open the document that was chosen by the dialog
ApplicationClass wordApp = new ApplicationClass();
wordApp.Visible = false;

Document aDoc = wordApp.Documents.Open(
ref fileName, ref missing, ref missing,
ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);

aDoc.PageSetup.PageHeight = 1050.0F;
aDoc.PageSetup.PageWidth = 710.0F;
aDoc.PageSetup.TopMargin = 5;
aDoc.PageSetup.BottomMargin = 20;
aDoc.PageSetup.LeftMargin = 90;
aDoc.PageSetup.RightMargin = 50;
aDoc.Save();
System.Diagnostics.Process.Start(@path);
Response.End();
}

public void ExpertControl(System.Web.UI.Control source, string File)
{
Response.ContentType = "application/ms-word";
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
//关闭控件的视图状态
source.Page.EnableViewState = false;
//初始化HtmlWriter
System.IO.StringWriter writer = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);
source.RenderControl(htmlWriter);
StreamWriter streamwriter = new StreamWriter(File); //创建数据流

streamwriter.Write(writer.ToString()); //输出
streamwriter.Close(); //关闭流

}

...全文
411 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
生活 2010-01-04
  • 打赏
  • 举报
回复
引用 3 楼 mngzilin 的回复:

C# codeaDoc.Save();
aDoc.Close();
System.Diagnostics.Process proc= System.Diagnostics.Process.Start(@path);
proc.Close();
正解
这个实验过没用。
#15楼
注意关闭文件操作的流
已经关闭了
LutzMark 2010-01-04
  • 打赏
  • 举报
回复
注意关闭文件操作的流
不老神仙 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mngzilin 的回复:]

C# codeaDoc.Save();
aDoc.Close();
System.Diagnostics.Process proc= System.Diagnostics.Process.Start(@path);
proc.Close();
[/Quote]
正解
walkghost 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 huming_h 的回复:]
你将11.doc
文件放在你虚拟目录下,再看看。
[/Quote]
UP,注意权限的设置。
生活 2010-01-04
  • 打赏
  • 举报
回复
#10楼 得分:0回复于:2010-01-04 11:56:15把 "D:\11.doc"这个文件移到网站根目录下
没有作用
生活 2010-01-04
  • 打赏
  • 举报
回复
晕了,这个文件是我用文件流自动生成的,怎么陪权限的?还有陪什么权限能解决问题啊。
  • 打赏
  • 举报
回复
把 "D:\11.doc"这个文件移到网站根目录下
生活 2010-01-04
  • 打赏
  • 举报
回复
5楼说的权限问题 应该不是吧。报的是文件已经被打开,所以操作不了。
烈火蜓蜻 2010-01-04
  • 打赏
  • 举报
回复
权限 问题吧,IIS的权限不是很大
huming_h 2010-01-04
  • 打赏
  • 举报
回复
你将11.doc
文件放在你虚拟目录下,再看看。
生活 2010-01-04
  • 打赏
  • 举报
回复
111.doc打开了我知道。但是不知道怎么解决
是这步出现的问题
Document aDoc = wordApp.Documents.Open(
ref fileName, ref missing, ref missing,
ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);

aDoc.PageSetup.PageHeight = 1050.0F;
aDoc.PageSetup.PageWidth = 710.0F;
aDoc.PageSetup.TopMargin = 5;
aDoc.PageSetup.BottomMargin = 20;
aDoc.PageSetup.LeftMargin = 90;
aDoc.PageSetup.RightMargin = 50;
aDoc.Save();
在wordApp.Documents.Open 打开的文件,但是下面aDoc.PageSetup.TopMargin 要设置边距。
这报错了。我要是先wordApp.Documents.Close关闭文件就设置不了。 不关闭还报错,无奈了。
楼上说的
aDoc.Save();
aDoc.Close();
System.Diagnostics.Process proc= System.Diagnostics.Process.Start(@path);
proc.Close();
这步没有错。
是关闭我后面打开的文件,后面是我操作的WORD ,是指定打开的,关闭了还怎么操作WORD 文档啊。
huming_h 2010-01-04
  • 打赏
  • 举报
回复
string path = "D:\11.doc"
应该是权限问题造成的。。
xr396464010 2010-01-04
  • 打赏
  • 举报
回复
看不明白,学习下。。。
mngzilin 2010-01-04
  • 打赏
  • 举报
回复
aDoc.Save();
aDoc.Close();
System.Diagnostics.Process proc= System.Diagnostics.Process.Start(@path);
proc.Close();
fengjian_428 2010-01-04
  • 打赏
  • 举报
回复
D:\11.doc 这个已经被打开过了?
生活 2010-01-04
  • 打赏
  • 举报
回复
高手们帮帮忙吧。
生活 2010-01-04
  • 打赏
  • 举报
回复
高手求救~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!!!!!!!!
生活 2010-01-04
  • 打赏
  • 举报
回复
觉得分少的话,可以加,大家帮下忙,也就当学习了.
生活 2010-01-04
  • 打赏
  • 举报
回复
#18楼 得分:0回复于:2010-01-04 14:03:09权限问题。
解决方式:命令行下输入Dcomcnfg,组件服务——〉我的电脑——〉DCOM设置,找到word文档,属性,选择安全,在上面两项中选择自定义,将EVERYONE用户加入
这个我试过了 不好用 另外我也给iis 配置权限 EVERYONE 为 完全控制了

getandsethelp 2010-01-04
  • 打赏
  • 举报
回复
权限问题。
解决方式:命令行下输入Dcomcnfg,组件服务——〉我的电脑——〉DCOM设置,找到word文档,属性,选择安全,在上面两项中选择自定义,将EVERYONE用户加入

加载更多回复(1)

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧