C# 从Asp.net应用程序在客户端打开Word文档
我们需要使用Microsoft word打开位于客户端计算机服务器上的word文档。该解决方案在本地工作,但是当部署到服务器上时,唯一发生的事情是在服务器上启动winword.exe。使用互操作或javascript可以做到这一点吗 这是到目前为止的密码C# 从Asp.net应用程序在客户端打开Word文档,c#,asp.net,document,C#,Asp.net,Document,我们需要使用Microsoft word打开位于客户端计算机服务器上的word文档。该解决方案在本地工作,但是当部署到服务器上时,唯一发生的事情是在服务器上启动winword.exe。使用互操作或javascript可以做到这一点吗 这是到目前为止的密码 Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass(); object fil
Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object file = FilePath + FileName;
lblError.Text = lblError.Text + file.ToString();
object readOnly = false;
object objTrue = true;
object missing = System.Reflection.Missing.Value;
object emptyData = string.Empty;
wordApp.Visible = true;
Microsoft.Office.Interop.Word.Document aDoc =
wordApp.Documents.Open(ref file,
ref missing, ref readOnly,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref objTrue);
aDoc.Activate();
您必须记住,客户机和服务器运行在两台不同的机器上。服务器无法启动在客户端计算机上运行的程序
另外,仅供参考,从不从ASP.NET应用程序使用办公自动化。这些API是为在桌面应用程序中使用而设计的。它们不能正常工作,不受支持,甚至可能违反您的Office许可证。它在本地工作的原因是,它不是。发生的情况是,服务器正在打开文档,但由于您的本地计算机充当服务器,因此似乎文件已打开 一个简单的解决方案是用户下载文件,编辑并上传回您。
<script language="javascript" type="text/javascript">
function openDokument(dokument){
var objAppl;
try{
objAppl = GetObject("","Word.Application");
objAppl.Documents.open(dokument);
}
catch(exception){
objAppl = new ActiveXObject("Word.Application");
objAppl.Visible = true;
alert(dokument);
objAppl.Documents.open(dokument);
objAppl.Activate();
}
objAppl = null;
}
</script>
函数openDokument(dokument){
var-objAppl;
试试{
objAppl=GetObject(“,”Word.Application”);
对象文档打开(dokument);
}
捕获(例外){
objAppl=新的ActiveXObject(“Word.Application”);
objAppl.Visible=true;
警觉(多愁善感);
对象文档打开(dokument);
objAppl.Activate();
}
objAppl=null;
}
您可以使用DocX类创建word文档。然后使用Response.Write()方法(确切地说,doxment扩展名是.docx)在您的计算机中下载文档感谢john的输入,所以无法从客户端计算机打开word.exe?我已经尝试了很多解决方案,但是没有成功。如果服务器可以在客户机上运行任意程序,这将是一个巨大的安全问题!