Windows Server 直接部署 OnlyOffice Document Server(極簡版)實現 IIS 網站在線瀏覽器編輯 Office 文檔。
方案特點
無需手動安裝依賴:使用官方安裝包自動集成 PostgreSQL、RabbitMQ、Erlang
?一鍵式安裝:全程僅需運行安裝程序,無需配置復雜參數
最小化資源占用:僅保留核心編輯功能,關閉非必要服務
一、安裝 OnlyOffice Document Server
1. 下載安裝包
2. 運行安裝程序(管理員身份)
.\onlyoffice-documentserver.exe /DS_PORT=8080 /S
3. 驗證安裝
net start | findstr "DsExampleSvc"
二、C# 集成代碼(ASP.NET Core 完整示例)
1. 后端代碼(DocumentController.cs
)
public class DocumentController : Controller
{
private readonly string _docServerUrl = "http://your-server-ip:端口/"; // 替換為實際地址
private readonly string _storagePath = Path.Combine("App_Data", "Documents");
// 文檔編輯頁面
[HttpGet]
public IActionResult Edit(string fileName)
{
var config = new
{
documentServerUrl = _docServerUrl,
key = Guid.NewGuid().ToString(),
title = fileName,
url = Url.Content($"~/Documents/{fileName}"),
callbackUrl = Url.Action("Save", "Document", null, Request.Scheme)
};
return View(config);
}
// 保存文檔回調接口
[HttpPost]
public IActionResult Save()
{
try
{
var file = Request.Form.Files[0];
var savePath = Path.Combine(_storagePath, file.FileName);
Directory.CreateDirectory(_storagePath); // 確保目錄存在
using (var stream = new FileStream(savePath, FileMode.Create))
{
file.CopyTo(stream);
}
return Json(new { error = 0 });
}
catch (Exception ex)
{
return Json(new { error = 1, message = ex.Message });
}
}
}
2. 前端頁面(Edit.cshtml
)
@model dynamic
<div id="editor" style="height: 95vh;"></div>
@section Scripts {
<script src="@Model.documentServerUrl/web-apps/apps/api/documents/api.js"></script>
<script>
const config = {
document: {
fileType: "@Model.title.split('.').pop()",
key: "@Model.key",
title: "@Model.title",
url: "@Model.url"
},
editorConfig: {
callbackUrl: "@Model.callbackUrl",
lang: "zh-CN",
user: { id: "user-001", name: "Guest" } // 可自定義用戶信息
},
documentServerUrl: "@Model.documentServerUrl"
};
new DocsAPI.DocEditor("editor", config);
</script>
}
三、關鍵配置說明
1. IIS 配置
.docx → application/vnd.openxmlformats-officedocument.wordprocessingml.document
.xlsx → application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.pptx → application/vnd.openxmlformats-officedocument.presentationml.presentation
2. OnlyOffice 配置優化
"token": { "enable": { "request": { "inbox": false, "outbox": false }, "browser": false } }
"request-filtering-agent": { "allowPrivateIPAddress": true }
3. 數據庫簡化(可選)
四、系統架構圖
瀏覽器 → IIS ASP.NET Core 應用 → OnlyOffice Document Server (8080)
↑ ↑
SQL Server 數據庫 內嵌 PostgreSQL/RabbitMQ
↑
文件存儲(App_Data/Documents)
五、常見問題與排查
問題現象 | 解決方法 |
---|
文檔無法加載 | 檢查 OnlyOffice 服務是否運行,防火墻是否開放端口 |
保存回調失敗 | 確保 callbackUrl 可通過公網訪問,關閉 JWT 驗證 |
中文文件名亂碼 | 前端傳遞文件名時使用 encodeURIComponent() ,后端解碼保存 |
內存占用過高 | 建議服務器內存 ≥4GB,或限制并發編輯用戶數 |
端口沖突 | 修改 OnlyOffice 端口(如 8080),避免與 IIS 沖突 |
六、擴展功能(可選)
用戶權限控制:在 editorConfig
中設置 permissions
字段限制編輯權限
版本歷史:結合 SQL Server 記錄每次保存的版本
文檔預覽:通過 /ConvertService.ashx
接口生成 PDF 預覽
通過此方案,您可在 30 分鐘內完成 OnlyOffice 的部署與集成,實現基礎的在線編輯功能。如需進一步優化,可參考 ONLYOFFICE API 文檔。
該文章在 2025/5/28 11:28:19 編輯過