WOPI Validator の CheckFileInfoSchema(HostUrls)テストで JsonReaderException が発生する

杉山 秀治 0 評価のポイント
2025-12-17T08:56:54.3633333+00:00

WOPI Host の実装を開発中で、WOPI Validation Service を利用して検証を行っています。

ExecuteTestMethod.ashx を用いたテストのうち、

「CheckFileInfoSchema」グループ内の「HostUrls」テストを実行した際に、

次の例外が返されます。

例外内容:

Newtonsoft.Json.JsonReaderException:

Unexpected character encountered while parsing value: S.

Path '', line 0, position 0.

ドキュメントを見る限り、この例外は

「WOPI Validator が JSON として解釈できないレスポンスを受け取った場合」に

発生すると理解しています。

ただし、実際に Validator が受け取ったレスポンス本文は

この例外からは読み取ることができません。

そこで以下を質問させてください:

  1. WOPI Validator の HostUrls テストが CheckFileInfo を呼び出した際に、 JSON 以外のレスポンスと判定される典型的な状況はありますか?
  2. Validator 実行時に、実際に受け取ったレスポンス本文(raw response)を 取得する方法はありますか? たとえばログレベルの変更、設定ファイルの調整など。
  3. CheckFileInfoSchema(HostUrls)で JsonReaderException が発生する場合、 ホスト側でまず確認すべき一般的なポイントがあれば教えてください。

ドメイン名や実装コードなど、追加情報が必要な場合は提供可能ですので、

必要な範囲をご指示いただければ幸いです。

Microsoft 365 と Office | 開発 | Office JavaScript API
0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Michelle-N 20,735 評価のポイント Microsoft 外部スタッフ モデレーター
    2025-12-17T12:33:22.6333333+00:00

    注:この回答は自動的に翻訳されています。そのため、文法の誤りや不自然な表現が含まれていることがあります。

    こんにちは@杉山 秀治(SB 法人統括)

    MicrosoftのQ&Aフォーラムを通じてご連絡いただきありがとうございます*。*

    ご提供いただいた情報に基づき、WOPI Hostの実装中に CheckFileInfoSchema グループ内の HostUrls テストで Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: S という例外が発生している状況と理解いたしました。これは、WOPI ValidatorがJSONとして解釈できないレスポンスを受け取ったことを示しています。

    以下に、この問題の典型的な原因と解決策をまとめました。

    1. 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)が含まれている、または無効な制御文字が含まれている場合。

    1. Validator実行時に生のレスポンス(raw response)を確認する方法

    現在の仕様では、WOPI Validator自体には、自動テスト実行時(ExecuteTestMethod.ashx)に生のHTTPレスポンス本文を表示する機能や設定はありません。

    デバッグのためには、WOPI Host側で以下の詳細なログを記録する実装が必要です。

    -リクエスト情報: URL、クエリパラメータ、ヘッダー(特に X-WOPI-CorrelationId はログの突き合わせに必須です)。

    -レスポンス情報: HTTPステータスコード、および レスポンス本文(Body) の内容。 Validatorがエラーを出した時刻とサーバーログを照合すれば、実際にどのようなHTML(または不正なテキスト)が返されたかを特定できます

    1. CheckFileInfoSchema (HostUrls) でJsonReaderExceptionが発生する場合のチェックリスト

    ホスト側で以下のポイントを優先的に確認してください。

    -例外のハンドリング: アプリケーション内でエラーが発生した際、HTMLのスタックトレースではなく、適切なJSONまたはHTTPステータスのみを返すように実装してください。

    -Content-Typeの明示: レスポンスヘッダーが application/json; charset=utf-8 に設定されていることを確認してください。

    -JSON構造: レスポンスが { で始まる有効なJSONオブジェクトであることを確認してください(単なる文字列 "Success" や、末尾に余分なカンマがある場合はエラーになります)。

    -必須プロパティ: 特に HostUrls テストでは、CheckFileInfo のレスポンスに HostViewUrl と HostEditUrl が含まれており、それぞれ有効かつ異なるURLであることを確認してください。

    -リダイレクトやURLの余分なパラメータ、セッションに依存したデータは、レスポンスを変化させる可能性があります。

     他に何か必要であれば、ぜひ教えてください。


    もし回答が役に立つなら、回答を受け入れる をクリックして、ぜひアップボートしてください。この回答について追加の質問がある場合は、コメントをクリックしてください。

    注意:このスレッドに関連するメール通知を受け取りたい場合は、当社のドキュメントの手順に従ってメール通知を有効にしてください。

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "推奨" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。