我在虚拟机(装的server 2012 r2)部署好office server之后,按照一位大神写的程序,然后发布到服务器。然后在物理机访问,能够正确得到文件信息(GetFileInfo那个方法),但是却在线显示不了(GetFile这个方法),
地址是 http://192.168.31.100/wv/wordviewerframe.aspx?WOPISrc=http://192.168.31.56/wopi/files/test.docx/contents&access_token=06l+hXK6zWTUi 。
错误信息是 “很抱歉,出现问题,无法打开此文档。如果此情况持续发生,请尝试在 Microsoft Word 中打开文档。”,sha256已经是获取文件的了,请问下这个还有什么问题么?谢了。。
然后用http://192.168.31.100/wv/wordviewerframe.aspx?WOPISrc=http://192.168.31.100:8099/wopi/files/test.docx&access_token=06l+hXK6zWTUi
这个链接去加载的话(没有加contents),就会出现一直加载的情况,感觉应该是下载文件下载不了。
第二个方法,用的web api2:
[Route("{name}/contents")]
public HttpResponseMessage GetFile(string name, string access_token)
{
try
{
string _access_token = access_token;
var file = HostingEnvironment.MapPath("~/App_Data/" + name);
var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(file, FileMode.Open, FileAccess.Read);
responseMessage.Content = new StreamContent(stream);
responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return responseMessage;
}
catch (Exception ex)
{
var rv = new HttpResponseMessage(HttpStatusCode.InternalServerError);
var stream = new MemoryStream(UTF8Encoding.Default.GetBytes(ex.Message ?? ""));
rv.Content = new StreamContent(stream);
return rv;
}
}
是不是这个代码有问题啊。谢了
没搞过这类技术。反正就是百度谷歌bing,调试调试调试。
唉,都试过了,搞了好久了。还是不行、。蛋疼。
@众生少两千: 1、搜搜英文的文章看看,谷歌浏览器能自动翻译成中文。多看看多对比 ,总能有发现的 2、试着再部署一次,确认下是否就是这个文章里的方法不行。
@黑峰: 好吧
问题找到了,office web app server不应该部署到域控制器上,反正我将服务部署到另一台服务器,这台服务器加入域,就行了,就能实现office oline功能了