Office クライアント アプリケーション内のオブジェクトを操作するためのアドインをサポートする Office サービス。
注:この回答は自動的に翻訳されています。そのため、文法の誤りや不自然な表現が含まれていることがあります。
こんにちは@杉山 秀治(SB 法人統括)
MicrosoftのQ&Aフォーラムを通じてご連絡いただきありがとうございます*。*
ご提供いただいた情報に基づき、WOPI Hostの実装中に CheckFileInfoSchema グループ内の HostUrls テストで Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: S という例外が発生している状況と理解いたしました。これは、WOPI ValidatorがJSONとして解釈できないレスポンスを受け取ったことを示しています。
以下に、この問題の典型的な原因と解決策をまとめました。
- CheckFileInfoが「JSONではない」と判定される典型的な状況
例外メッセージにある 「Unexpected character... S(予期しない文字 'S')」 は、ValidatorがJSONオブジェクトではなく、HTMLのエラーページを受け取っている可能性が非常に高いことを示唆しています。
-未処理のサーバー例外: ASP.NET等の環境では、サーバー側で例外処理が行われない場合、デフォルトで "Server Error in '/' Application." で始まるHTMLページが返されます。この "Server" の頭文字 'S' が、JSONのパースエラー(position 0)を引き起こしている原因であることが一般的です。
-トークン検証エラー: アクセストークンが無効な場合に、JSONではなく一般的な401/403のHTMLページを返していると、Validatorがそれをパースしようとして失敗します。
-Content-Typeの誤り: ヘッダーが application/json ではなく text/plain や text/html になっている場合。
-エンコーディングの問題: レスポンスの先頭にBOM(Byte Order Mark)が含まれている、または無効な制御文字が含まれている場合。
- Validator実行時に生のレスポンス(raw response)を確認する方法
現在の仕様では、WOPI Validator自体には、自動テスト実行時(ExecuteTestMethod.ashx)に生のHTTPレスポンス本文を表示する機能や設定はありません。
デバッグのためには、WOPI Host側で以下の詳細なログを記録する実装が必要です。
-リクエスト情報: URL、クエリパラメータ、ヘッダー(特に X-WOPI-CorrelationId はログの突き合わせに必須です)。
-レスポンス情報: HTTPステータスコード、および レスポンス本文(Body) の内容。 Validatorがエラーを出した時刻とサーバーログを照合すれば、実際にどのようなHTML(または不正なテキスト)が返されたかを特定できます
- CheckFileInfoSchema (HostUrls) でJsonReaderExceptionが発生する場合のチェックリスト
ホスト側で以下のポイントを優先的に確認してください。
-例外のハンドリング: アプリケーション内でエラーが発生した際、HTMLのスタックトレースではなく、適切なJSONまたはHTTPステータスのみを返すように実装してください。
-Content-Typeの明示: レスポンスヘッダーが application/json; charset=utf-8 に設定されていることを確認してください。
-JSON構造: レスポンスが { で始まる有効なJSONオブジェクトであることを確認してください(単なる文字列 "Success" や、末尾に余分なカンマがある場合はエラーになります)。
-必須プロパティ: 特に HostUrls テストでは、CheckFileInfo のレスポンスに HostViewUrl と HostEditUrl が含まれており、それぞれ有効かつ異なるURLであることを確認してください。
-リダイレクトやURLの余分なパラメータ、セッションに依存したデータは、レスポンスを変化させる可能性があります。
他に何か必要であれば、ぜひ教えてください。
もし回答が役に立つなら、回答を受け入れる をクリックして、ぜひアップボートしてください。この回答について追加の質問がある場合は、コメントをクリックしてください。
注意:このスレッドに関連するメール通知を受け取りたい場合は、当社のドキュメントの手順に従ってメール通知を有効にしてください。