既に解決済みかとは思いますが、VS2017でWebApiのレスポンスをJSONに固定しようとしたらglobal.asaxに記述するやり方ではダメだったので、ここにメモしておきます。
回答が付かなかったのは環境に関する情報が無いからだと思います。
C#でJSONを返すサービスを書くのにはWebApi,ASP.NET MVC,WCFと選択肢がたくさんあり、かつバージョンによって記述場所もコロコロ変わっています。
どのライブラリのどのバージョンを使っているのか、XMLが返って来るというのはどうやって確認した時のことなのかが分かれば答えやすいと思います。
勝手にWebApiを利用して開発されている仮定して回答します。違っていたらすみません。
WebApiはデフォルトでJSONとXMLの両方のフォーマットをサポートしています。
どちらを使うかはクライアント次第。どちらのフォーマットで送って欲しいか、Accept headerでメディアタイプ(application/xmlあるいはapplication/json)を指定してリクエストを送ります。
クライアント側がC#のような型に厳密な言語の場合は型情報が残っているXML、JavaScriptのような型にあいまいな言語ならより通信量の少ないJSONと使い分けできるようになっています(個人の感想かも知れません)。
IEで表示すればJSONになりChromeではXMLとして表示されたような記憶があります(逆かもしれません、ChromeじゃなくFireFoxかも知れません)。
jQuery等からgetJSONする場合には特に気にしなくても問題なくapplication/jsonが指定されるはずです。
どうしてもJSONだけに固定したい場合は、App_Start/WebApiConfig.csの
Web API ルートの設定が記述されている下に下記1行を追加すればJSONに固定できます。
(VS2017のWebApiテンプレート利用の場合)
config.Formatters.Remove(config.Formatters.XmlFormatter);
余談ですが、WebApiを利用されている場合は自分でJSONを組み立てる必要はまず無いと思います。
プロジェクトの「参照」の下にNewtonsoft.Jsonと言うのが見つかるはずです。
オブジェクトをリターンすれば、自動的にJSONにシリアライズしてくれます。
シリアライズの方法も色々制御可能です。日付のフォーマットやタイムゾーン、Nullの扱いなどWebApiで開発する場合はここだけは早めに目を通しておいた方がいいです(自戒をこめて…)。